代码改变世界

VPS每次重启后必做的优化工作

2018-09-19 12:27  自由勇  阅读(920)  评论(0编辑  收藏  举报

经过很多次的试验,CentOS、Debian、Ubuntu系统都暂时无法在开机是让它自启killall -9命令,用sleep的Shell语句让它在开机3或5分钟后再自动执行killall -9,依然不起作用。所以,这项工作必须在每次系统重启后手工添加。正好昨天收到主机商的邮件,每个VPS空间都收到了服务器要重启一次的通知:

对于OpenVZ,每次重启后需要手工执行一次这个Shell命令:
killall -9 syslogd

对于KVM,每次重启后需要手工执行一次这个Shell命令:
killall -9 syslogd && for ((a=1;a<=5;a++)); do echo 1 > /proc/sys/vm/drop_caches; sleep 10800; a=2; done

说明:上述语句测试过,对CentOS 5极其有效,因为我用的是这个系统的VPS(这个系统运行PHP效率最高);Ubuntu 12测试,能运行,是否起作用未测试。

killall -9 syslogd这句对于服务器优化有至关重要的作用,CentOS 6或以上的版本要用killall -9 rsyslogd
这句的含义是杀死syslogd或rsyslogd进程,如果不关掉此进程,主机下的/var/log目录,体积会迅速增加,它是系统日志文件,默认是开启日志的。

for ((a=1;a<=5;a++)); do echo 1 > /proc/sys/vm/drop_caches; sleep 10800; a=2; done 这一段命令,作用是让它每隔10800秒(即3小时)自动释放一次内存。释放内存的语句对于KVM、或独立Linux主机有效,但对OpenVZ不起作用。
OpenVZ想要释放内存,只能用reboot或shutdown -r now的重启命令。

不过,幸运的是,OpenVZ平时在运行时,内存消耗数基本上不变,也就是说很可能会自动释放内存(主机商可能有运行相关软件)。但KVM必须让它自动运行内存,因为我的KVM空间,之前没有自动运行内存,运行了2个多月出现了死机。所以,让它每隔3小时自动释放一次内存,实际上24小时、72小时自动释放一次都可以。