标签 负载 下的文章

监测linux负载过高时重启php脚本

#!/bin/sh
TOP_SYS_LOAD_NUM=5
SYS_LOAD_NUM=`uptime | awk '{print $(NF-2)}' | sed 's/,//'`

echo $(date +"%y-%m-%d") `uptime`
if [ `echo "$TOP_SYS_LOAD_NUM < $SYS_LOAD_NUM"|bc` -eq 1 ]
then
echo "#0#" $(date +"%y-%m-%d %H:%M:%S") "pkill php-fpm" `ps -ef | grep php-fpm | wc -l`
/etc/init.d/php-fpm stop
sleep 8
pkill php-fpm
sleep 8
for i in 1 2 3
do
if [ `pgrep php-fpm | wc -l` -le 0 ]
then
/etc/init.d/php-fpm start
sleep 30
echo "#1#" $(date +"%y-%m-%d %H:%M:%S") "start php-fpm" `ps -ef | grep php-fpm | wc -l`
fi
done
else
if [ `pgrep php-fpm | wc -l` -le 0 ]
then
/etc/init.d/php-fpm start
sleep 30
echo "#2#" $(date +"%y-%m-%d %H:%M:%S") "start php-fpm" `ps -ef | grep php-fpm | wc -l`
fi
fi

定时执行

*/5 * * * * /root/check-php.sh >>/var/log/check-php.log

Linux time_wait 过多的解决方法

今天在查看服务器负载时发现time_wait 非常的高

# netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n
      1 established)
      1 State
      6 CLOSING
     11 LAST_ACK
     18 LISTEN
     19 FIN_WAIT1
     36 SYN_RECV
    205 FIN_WAIT2
    296 ESTABLISHED
   7202 TIME_WAIT

解决方法:

1、编辑 /etc/sysctl.conf 文件:

net.ipv4.tcp_syncookies = 1
#开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭

net.ipv4.tcp_tw_reuse = 1
#开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭

net.ipv4.tcp_tw_recycle = 1
#开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

net.ipv4.tcp_fin_timeout = 30
#修改系统默认的 TIMEOUT 时间

然后执行

/sbin/sysctl -p

使修改生效。

- 阅读剩余部分 -