centos 内存问题处理

1.查询内存使用量:

free -m

2.查询内存占用排行(前10)

ps aux | head -1; ps aux | sort -k4nr | head -10

3.设置定时清理脚本,dropcache.sh

#!/bin/bash  
used=`free -m | awk 'NR==2' | awk '{print $3}'`  
free=`free -m | awk 'NR==2' | awk '{print $4}'`  
  
echo "===========================" >> /opt/dropcache/logs.txt  
date >> /opt/dropcache/logs.txt  
echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >>  /opt/dropcache/logs.txt  
  
# drop caches when the free memory less than 10G  
if [ $free -le 10000 ] ; 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" >>  /opt/dropcache/logs.txt  
else  
 echo "Not required" >> /opt/dropcache/logs.txt  
fi  

shell 主要是列出当前使用了多少内存,如果小于10G,则将内存清理掉,并将日志写入 logs.txt 的文件中。

如果超过10G也写入日志文件,但是会提示: Not required 表示无需清理。注意1.要修改文件的执行权限,2是要注意 Windows和Unix的文件编码格式的转换,不然会报syntax error near unexpected token `fi’的错误,

4.将脚本添加到crond任务,定时执行。

echo "*/30 * * * * sh /opt/dropcache/dropcache.sh" >> /etc/crondta
欢迎访问本网站!
雨木霜月 » centos 内存问题处理

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据