通过不少次的试验,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小时自动释放一次均可以。服务器