交换分区swap的使用与设置

问题引入

机器在跑某些跑某些项目或任务时,一般都需要考虑到系统的内存需要达到多少才能顺利跑完,满足要求后还是遇到内存溢出的oom异常该怎么去处理,而这个时候物理内存似乎又没用完,那么这里其实就是交换分区swap的使用不当了。

vm.swappiness参数

内核参数vm.swappiness控制换出运行时内存的相对权重,参数值大小对如何使用swap分区有很大联系。值越大,表示越积极使用swap分区,越小表示越积极使用物理内存。

默认值swappiness=60,表示内存使用率超过100-60=40%时开始使用交换分区。
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间;
swappiness=100的时候表示积极使用swap分区,并把内存上的数据及时搬运到swap空间。(网上有的说,对于3.5以后的内核和RedHat 2.6.32之后的内核,设置为0会禁止使用swap,从而引发out of memory,这种情况可以设置为1。)

调整vm.swappiness的方法:

1、查看参数值:
cat /proc/sys/vm/swappiness
2、临时调整:
sysctl vm.swappiness = 10
cat /proc/sys/vm/swappiness
3、永久调整:
vi /etc/sysctl.conf
修改vm.swappiness=10
然后加载参数:
sysctl -p

分区大小的设置与修改

查看现有Swap文件:swapon -s

关闭现有Swap文件:swapoff /path/to/swapfile
扩展Swap文件大小: 使用 dd 命令或者其他文件扩展工具(如 truncate)来增大Swap文件的大小。假设要将其从8GB增加到9GB:
sudo dd if=/dev/zero bs=1M count=1024 >> /path/to/swapfile
sudo truncate -s +1G /path/to/swapfile

使用上面方式来创建的交互文件可能会存在空洞的问题,推荐使用下面命令:
sudo fallocate -l /swapfile3
<size> 替换成所需的Swap文件大小,如 4G 表示创建一个4GB的Swap文件。fallocate命令通常能确保创建的文件没有空洞。

重新格式化Swap文件:sudo mkswap /path/to/swapfile
启用新大小的Swap文件:sudo swapon /path/to/swapfile

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值