ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com
标题:
linux一条命令获取free剩余内存大小,sh监控脚本,使用计划任务自动监控系统进程是否内存不足然后重启恢复,ps命令检查泄漏
[打印本页]
作者:
小樱
时间:
2024/9/26 21:16
标题:
linux一条命令获取free剩余内存大小,sh监控脚本,使用计划任务自动监控系统进程是否内存不足然后重启恢复,ps命令检查泄漏
linux一条命令获取free剩余内存大小,sh监控脚本,使用计划任务自动监控系统进程是否内存不足然后重启恢复,ps命令检查泄漏
获取free值,单位MB
vmstat -SM | awk '{print $4}' | awk 'NR==3'
复制代码
检测内存不足125MB则运行命令,使用计划任务来每分钟运行一次命令
运行crontab -e
* * * * * [ $(vmstat -SM | awk 'NR==3 {print $4}') -lt 125 ] && { killall -9 opentracker;sleep 3;cd /home/OpenTracker-master;cd opentracker;./opentracker -f opentracker.conf.sample -p 8080 -P 8080 -p 6961 -P 6961 -p 2710 -P 2710 &}
复制代码
取不到used字段,不然效果比free可能更精准
早期的帖子,可以代替之前的pidof判断oom杀进程,毕竟触发oom的之前几分钟因为内存不足都无法新建tcp连接,ssh都上不去
https://bbs.itzmx.com/thread-105494-1-1.html
帖子补充
找到更好的真实内存获取方案啦,比free更精准
* * * * * [ $(awk '/MemFree/ {free=$2} /Buffers/ {buffers=$2} /^Cached/ {cached=$2} END {print free + buffers + cached}' /proc/meminfo) -lt 125000 ] && { killall -9 opentracker;sleep 3;cd /home/OpenTracker-master;cd opentracker;./opentracker -f opentracker.conf.sample -p 8080 -P 8080 -p 6961 -P 6961 -p 2710 -P 2710 &}
复制代码
帖子补充,这是另一种支持任意进程的实现思路
用ps命令检查实现监控进程内存大于200MB就重启进程,正常情况下v2软件内存最大使用量为70MB,为了避免未知的内存泄漏我们就设置监控进程重启,这里用opentracker举例,自己替换代码
* * * * * [ $(/sbin/pidof opentracker) ] && [ $(ps -o rss= -p $(pgrep opentracker)) -gt 200000 ] && { killall -9 opentracker;sleep 3;cd /home/OpenTracker-master;cd opentracker;./opentracker -f opentracker.conf.sample -p 8080 -P 8080 -p 6961 -P 6961 -p 2710 -P 2710 &}
复制代码
欢迎光临 ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com (https://bbs.itzmx.com/)
Powered by Discuz! X3.4