#教程# Linux云主机 VPS 到达指定内存占用率就重启脚本

2019/02/2221:22:22 发表评论 755
摘要

在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。

在 Linux 中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是 Linux 内存管理的一个优秀特性,在这方面,区别于 Windows 的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高 Linux 系统的数据访问性能。而 Windows 是只在需要内存时,才为应用程序分配内存,并不能充分利用大容量的内存空间。换句话说,每增加一些物理内存,Linux 都将能充分利用起来,发挥了硬件投资带来的好处,而 Windows 只将其做为摆设。

综上所述,一般不需要太关注 Linux 的内存占用情况,如果 SWAP 占用率很高的话一般可能就是内存不够用了。swap 存在的意义在于存放不经常使用的数据,而不是物理内存放不下的数据,如果经常使用的数据在物理内存中存放不下,内核会被迫将部分数据分配到 swap,接下来会产生大量的硬盘读写 IO,大量的硬盘读写 IO 会产生的后果为:

CPU 在处理运算时会有大量的时间在等待硬盘 IO,严重影响服务器的响应速度;

同服务器上的其他VPS都会受到影响(可能导致服务商停止服务);

临时解决办法

将下面内容保存到 /root/mem.sh ,这个脚本的意思是使用内存超过 512M 就重启,512 可以改为合适的数字

#!/bin/sh
used=`free -m|grep mem:|awk '{print $3}'`
if [ $used -gt 512]
then
    reboot
else
    echo "ok"
fi

给予权限 755 以上,或者执行下面命令:

chmod +x /root/mem.sh

再添加一行定时任务/var/spool/cron/root:

*/5 * * * *  /root/mem.sh  > /home/wwwlogs/mem.log
weinxin
云线路电报[TG]:@yunloc
[云线路 Yunloc.com ]是一个搜集网络建站资源的地方

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: