【shell】Linux服务器内存释放脚本

在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching. 这样通过free 查看系统内存, 就会发现物理内存剩余很少。


# cat freemem.sh

###############################################################

#!/bin/bash

used=`free -m | awk 'NR==2' | awk '{print $3}'`

free=`free -m | awk 'NR==2' | awk '{print $4}'`

echo "===========================" >> /var/log/mem.log

date >> /var/log/mem.log

echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log

if [ $free -le 100 ]; then

  sync && echo 1 > /proc/sys/vm/drop_caches

  sync && echo 2 > /proc/sys/vm/drop_caches

  sync && echo 3 > /proc/sys/vm/drop_caches

  echo "OK" >> /var/log/mem.log

else

  echo "Not required" >> /var/log/mem.log

fi

###############################################################


参考


深度清理系统内存命令 freemem

https://zongf.blog.csdn.net/article/details/90444905


Linux服务器释放内存脚本

https://blog.csdn.net/xiaolong_4_2/article/details/82740446


scripts/freemem.sh

https://github.com/cbodden/scripts/blob/master/freemem.sh


这样释放内存好吗? sync; echo 3 > /proc/sys/vm/drop_caches 会不会影响其他正在跑的程序?

https://www.v2ex.com/t/160359

https://www.kernel.org/doc/Documentation/sysctl/vm.txt

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容