遇到swap free memory为0怎么办?

转载地址:https://blog.csdn.net/licanhua/article/details/7057143
遇到swap free memory为0怎么办?
在实时系统中,一般swap都使用比较少,最佳状态就是used一直为0,但是 在工作中,我们遇到一个问题,swap的free空间正在不断变小。如果从top结果来看,我们能找出哪些process使用VSZ和RSS比较多,但是并不能确定到底是谁被更多swap。

host:/root-# free

         total       used       free     shared    buffers     cached

Mem: 8050416 8007984 42432 0 1237124 229692

-/+ buffers/cache: 6541168 1509248

Swap: 4200988 4098364 102624 <–蓝色的数字在不断变小。

使用以下脚本,我们就能监测前面20个vsz使用大的进程vsz/rss的变化情况,通过与free结果结合比较,就能确定到底谁被swap了。

while true
do
date
ps -aeo “pid vsz rss comm” | sort -n -k2 | tail -20
free
sleep 10
done >/tmp/monitor.log

作者:licanhua
来源:CSDN
原文:https://blog.csdn.net/licanhua/article/details/7057143
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统上,可以通过以下步骤构造一个自动增长的swap: 1. 创建一个swap文件,可以使用dd命令创建,例如:`sudo dd if=/dev/zero of=/swapfile bs=1G count=4`,这个命令将会在根目录下创建一个4GB大小的swap文件。 2. 设置swap文件权限,只有root用户可以使用swap文件:`sudo chmod 600 /swapfile` 3. 将文件转换为swap分区:`sudo mkswap /swapfile` 4. 启用swap:`sudo swapon /swapfile` 5. 在/etc/fstab中添加swap文件的条目,以便系统在启动时自动启用swap。 6. 创建一个脚本来检查系统内存使用情况,并在需要时自动增加swap文件的大小。这个脚本可以使用free和awk命令来实现,例如: ``` #!/bin/bash # Check free memory free_mem=$(free | awk '/^Mem:/{print $4}') # Check swap usage swap_used=$(free | awk '/^Swap:/{print $3}') # Increase swap file if free memory is less than 1GB and swap is fully used if [[ $free_mem -lt 1048576 && $swap_used -eq 0 ]]; then # Increase swap file by 1GB sudo dd if=/dev/zero of=/swapfile bs=1G count=1 seek=$(sudo swapoffset /swapfile) sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile fi ``` 这个脚本将会检查系统内存使用情况,如果空闲内存小于1GB并且swap已经被完全使用,就会自动增加swap文件的大小。在这个例子中,每次增加1GB的swap文件大小,但是你可以根据你的需求来调整这个值。 将这个脚本添加到cron作业中,以便每隔一段时间自动运行一次。例如,每隔30分钟运行一次: ``` */30 * * * * /path/to/swap_increase_script.sh ``` 这样,你就可以构造一个自动增长的swap了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值