我的服务器上运行的软件数量相当多:httpd,varnish,mysql,memcache,java ..
他们每个人都使用虚拟内存的一部分,并且清漆配置为分配3GB内存来运行.
由于高流量负载为100K,我们的服务器内存不足,并且调用了oom-killer.我们要重启服务器.
我们有8GB的虚拟内存,由于某种原因我们无法扩展到更大的内存.
我的问题是 – 是否有任何自动脚本,它将监视剩余的虚拟内存量,并根据某些标准,假设是否还剩500MB而不是自动重启服务器?
我知道这不是正确的解决方案,但我们必须这样做,否则我们不知道服务器何时会获得OOM,当我们知道并重新启动服务器时,我们失去了访问用户.
解决方法
如果我理解正确,您需要以下内容:
>检查VPS上剩余的内存量.
>如果剩余500M内存,请重新启动VPS.
这可以如下完成
>编写一个脚本,检查剩余的内存并重新启动VPS
>将此脚本添加到crontab以自动执行该任务.
例如
#!/bin/bash mem=$(free -m | awk '/Mem:/{print $4}') (( mem <= 500 )) && reboot
使脚本可执行
chmod x scriptname // note请勿添加扩展名
将脚本添加到cron
crontab -e
* * * * * user_to_run_the_script /path/to/the/script
希望你能得到这个想法.