sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1G count=16
命令 | 解释 |
---|---|
sudo | 执行命令需要超级用户前缀 |
dd | 用于复制和转换文件的命令 |
if=/dev/zero | if指定输入文件。/dev/zero是一个特殊文件,读取会返回null字节(‘\0’) |
of=/swapfile | of指定输出文件 |
bs=1G | 设置块大小为1G。表示dd命令每次从输入文件读取1G的数据,然后写入到输出文件。 |
count=16 | 指定要复制块的数量。 |
此命令将创建一个大小为16GB的 /swapfile 文件。 |
成功输出为
记录了16+0 的读入
记录了16+0 的写出
17179869184字节(17 GB,16 GiB)已复制,32.1801 s,534 MB/s
sudo chmod 600 /swapfile
sudo mkswap /swapfile
打开交换空间
sudo swapon -a
/etc/fstab
中添加一个条目。/swapfile none swap sw 0 0
表明 /swapfile
是一个交换文件,类型为none,使用sw作为交换分区类型,并且没有特定的挂在选项(使用默认值)。
打开交换空间
sudo swapon --show
如果一切正常,你应该能够在输出中看到你的交换文件。
最后,确保交换空间的大小不会超过物理内存的大小,否则可能会导致系统性能问题。
确定物理内存
free -g
sudo swapoff -a
fallocate
或 truncate
命令来减小交换文件大小fallocate
命令sudo fallocate -l 8G /swapfile
truncate
命令
sudo truncate -s 8G /swapfile
sudo swapon --show
如果无效,可能是因为文件系统或文件系统的限制。在某些文件系统上,例如ext4,直接缩小已分配的文件大小可能有限制或不可行。
可以考虑使用dd
命令覆盖文件的一部分,使其变成未分配的空间,然后再重新创建交换空间。
fallocate
与 truncate
的区别fallocate和truncate都是用于处理文件大小的命令,但它们在处理方式和结果上有一些区别。
综上,fallocate主要用于预先分配物理空间,而truncate主要用于生成空洞文件。