Ubuntu 上 修改swap交换空间

增加交换空间

  1. 关闭交换空间。
sudo swapoff -a
  1. 查看是否有 swap或swapfile文件(在根目录下)。
sudo dd if=/dev/zero of=/swapfile bs=1G count=16
命令解释
sudo执行命令需要超级用户前缀
dd用于复制和转换文件的命令
if=/dev/zeroif指定输入文件。/dev/zero是一个特殊文件,读取会返回null字节(‘\0’)
of=/swapfileof指定输出文件
bs=1G设置块大小为1G。表示dd命令每次从输入文件读取1G的数据,然后写入到输出文件。
count=16指定要复制块的数量。
此命令将创建一个大小为16GB的 /swapfile 文件。

成功输出为

记录了16+0 的读入
记录了16+0 的写出
17179869184字节(17 GB,16 GiB)已复制,32.1801 s,534 MB/s
  1. 设置文件交换权限
sudo chmod 600 /swapfile
  1. 将文件设置为交换空间
sudo mkswap /swapfile

打开交换空间

sudo swapon -a
  1. 使交换空间 在系统重启后依旧生效
    /etc/fstab 中添加一个条目。
/swapfile none swap sw 0 0

表明 /swapfile 是一个交换文件,类型为none,使用sw作为交换分区类型,并且没有特定的挂在选项(使用默认值)。

打开交换空间

sudo swapon --show

如果一切正常,你应该能够在输出中看到你的交换文件。

最后,确保交换空间的大小不会超过物理内存的大小,否则可能会导致系统性能问题。

确定物理内存

free -g

减小交换空间

  1. 关闭交换空间
sudo swapoff -a
  1. 使用 fallocatetruncate 命令来减小交换文件大小
    如要将交换文件减小为8GB,可以使用
    fallocate 命令
sudo fallocate -l 8G /swapfile

truncate 命令

sudo truncate -s 8G /swapfile
  1. 重启交换空间
sudo swapon --show

如果无效,可能是因为文件系统或文件系统的限制。在某些文件系统上,例如ext4,直接缩小已分配的文件大小可能有限制或不可行。

可以考虑使用dd命令覆盖文件的一部分,使其变成未分配的空间,然后再重新创建交换空间。


fallocatetruncate 的区别

fallocate和truncate都是用于处理文件大小的命令,但它们在处理方式和结果上有一些区别。

  1. fallocate:这个命令用于预先分配文件所需的物理空间。这意味着它会确保文件在磁盘上的扇区上是连续的,从而减少了后续写入和读取文件时的磁盘寻道时间。然而,这个过程并不创建空洞文件,即占用实际的磁盘空间。
  2. truncate:这个命令会生成空洞文件。也就是说,虽然文件在逻辑上看起来大小很大,但实际上它并不占用任何磁盘空间。

综上,fallocate主要用于预先分配物理空间,而truncate主要用于生成空洞文件。

  • 31
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值