Filesystem Size Used Avail Use% Mounted on
udev 63G 0 63G 0% /dev
tmpfs 13G 139M 13G 2% /run
/dev/nvme0n1p2 103G 22G 77G 22% /
tmpfs 63G 76M 63G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/nvme0n1p1 511M 132K 511M 1% /boot/efi
tmpfs 13G 16K 13G 1% /run/user/117
tmpfs 13G 68K 13G 1% /run/user/1000
/dev/sda1 3.6T 19G 3.4T 1% /media/geert/HDD
我的 SSD 上唯一“可用”的空间是安装在 上的 103G 文件系统/
(即我保存或安装的所有内容都位于该文件系统中)。udev
和tmpfs
文件系统在做什么? 有什么措施可以让我“可用”的空间更大吗?
编辑:这是输出fdisk -l
:
Disk /dev/nvme0n1: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 9D9D4041-0C82-47D0-AFD2-C0D29383FE18
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 1050623 1048576 512M EFI System
/dev/nvme0n1p2 1050624 220219391 219168768 104.5G Linux filesystem
/dev/nvme0n1p3 220219392 488396799 268177408 127.9G Linux swap
问题似乎是交换空间太大。我的 RAM 是 128G,是否 (a) 可以(可取?)减少交换空间,或 (b) 可取将交换空间放在 HDD 上,或 (c) 可取将某些系统或用户文件(主文件夹?或opt
包含一些大型应用程序?)移动到 HDD?
欢迎所有一般性建议。
答案1
好的,您设置了一个巨大的交换空间,占用了一半的SSD - 我建议您删除或减少它。
为此,请使用swapoff -a
停止使用它,然后使用fdisk
或朋友将分区表更改为类似于合理的值。最后一步是调整/etc/fstab
以反映新的交换设置。
重启后,您可以使用resize2fs
它/dev/nvme0n1p2
来增加文件系统的可用大小。
编辑
对于分区,请fdisk /dev/nvme0n1
在确保已关闭交换后使用(或您选择的其他工具)。现在首先删除分区 3,然后将分区 2 扩展到磁盘末尾。如果您的工具有extend
此功能,请使用此功能,否则只需删除分区并使用完全相同的分区号 (2)、起始扇区 (1050624) 和原始分区 3 的结束扇区 (268177408) 重新创建它。保存分区表并重新启动。
答案2
我会首先听从 Eugen 的建议,将交换从 SSD 中完全移除,因为您可能有足够的 RAM 不需要交换。如果您确实需要大量交换来进行计算,您可以稍后从大型媒体驱动器中添加它。您甚至不需要重新分区,因为 Linux 可以交换到文件以及分区。(不过分区效率更高)
# create a giant file
dd if=/dev/zero of=/media/geert/HDD/swap bs=1G count=128
# make sure only root can read it or move it
chmod 700 /media/geert/HDD/swap
chmod go-w /media/geert/HDD # just guessing here
# with new enough tools, swapon can act on the file directly
# else you need to create a loopback device on it first
mkswap /media/geert/HDD/swap
swapon /media/geert/HDD/swap
# Add it to /etc/fstab so that it activates on startup
echo "/media/geert/HDD/swap none swap sw,auto 0 0" >> /etc/fstab
交换只是为需要它的人提供的“缓慢但便宜的 RAM”。如果您拥有的 RAM 多于所需,则无需任何交换。我运行过许多完全没有交换的服务器,这不是问题。我甚至运行过具有适度 RAM 且没有交换的桌面系统,以避免因大型网页突然驱逐我的所有应用程序并拖慢我的系统而导致的延迟。我宁愿看到浏览器选项卡立即崩溃(被 Linux OOM 杀死),也不愿等待 5 分钟,而我的系统会停止运行并最终决定杀死该浏览器选项卡。
让交换大小与内存大小相匹配的“经验法则”适用于诸如挂起到磁盘之类的功能。因此,如果笔记本电脑(甚至台式机)想要该功能,就需要保持这种做法。这也是对服务器的建议,假设您拥有一台具有足够数量的 RAM 以满足工作负载需求的服务器,以及大量廉价磁盘。如果一群用户决定同时运行他们的任务,交换将阻止他们被杀死……但在他们完成任务之前,服务器会非常滞后。
另外,我想您已经意识到了,但是“df”列表中任何未在左列中提及磁盘分区的内容都只是虚拟文件系统,它存储在 RAM 中或按需生成。它们不占用您的任何磁盘空间。