VPSÆäʵºÍÒ»°ãµÄ¶ÀÁ¢Linux·þÎñÆ÷£¬ÔÚʹÓÃÉÏ»ù±¾Ã»ÓÐÇø±ð£¬ÒòΪÏÖÔÚµÄÐéÄ⻯¼¼ÊõÒÔ¼°ºÜ³ÉÊìÁË£¬²»¹ýVPSºÍ¶À·þ»¹ÊÇÓÐÒ»¸öºÜ´óµÄ²îÒ죬ÄǾÍÊÇϵͳ×ÊÔ´ºÍÐÔÄÜÉÏ¡£Í¨³££¬VPS¶¼ÊÇÓÉÒ»¸ö¶ÀÁ¢·þÎñÆ÷»®·Ö³öÀ´µÄ£¬ËùÒÔÔÚ×ÊÔ´ºÍÐÔÄÜÓÅÊÆÉÏ£¬Ô¶±È²»É϶À·þ¡£
¾ÍÄÃǰ¶Îʱ¼ä±¾VPSÊܵ½µÄDDOS¹¥»÷À´Ëµ£¬ÆäʵDDOSÒ²ÊÇÀûÓôóÁ¿·¢ÆðµÄÇëÇ󣬵¼Ö±»¹¥»÷VPS£¨»ò·þÎñÆ÷£©ÄÚ´æ×ÊÔ´±»ºÄ¾¡£¬ÏµÍ³¸ºÔعý¸ß£¬¶øµ¼ÖÂ80¶Ë¿ÚµÄHttp·þÎñÎÞÏìÓ¦£¬´Ó¶ø´ïµ½×îÖյĹ¥»÷Ä¿µÄ¡£DDOSËäÈ»·À²»Ê¤·À£¬²»¹ý×Ü»¹ÊÇÓÐһЩ°ì·¨£¬ÄܰÑDDOSµÄÓ°Ïì¼õСµÄ¡£±ÈÈ綨ʱ¼à¿ØÏµÍ³×´Ì¬£¬È»ºó×Ô¶¯ÖØÆôWeb·þÎñ£¬ÕâÒ²ÊDZ¾ÎÄÒª½éÉܵÄÒ»ÖÖ·½·¨¡£
ÔÚVPS±»¹¥»÷µÄʱºò£¬ÓÐһЩϵͳָ±êÄÜ·´Ó¦³öϵͳÊÇ·ñ´¦ÓÚ±»¹¥»÷״̬£¬Ò»¸ö¾ÍÊDz鿴ÄÚ´æÊ£ÓàÁ¿£¬µ±È»£¬Õâ²¢²»ÊÇ×î׼ȷµÄ·½·¨£¬ÁíÍâÒ»ÖÖ£¬¾ÍÊDz鿴LinuxµÄϵͳƽ¾ù¸ºÔØÖµ¡£
Linuxϵͳ¸ºÔؽéÉÜ
ϵͳƽ¾ù¸ºÔر»¶¨ÒåΪÔÚÌØ¶¨Ê±¼ä¼ä¸ôÄÚÔËÐжÓÁÐÖÐµÄÆ½¾ù½ø³ÌÊ÷¡£Èç¹ûÒ»¸ö½ø³ÌÂú×ãÒÔÏÂÌõ¼þÔòÆä¾Í»áλÓÚÔËÐжÓÁÐÖУº
- ËüûÓÐÔڵȴýI/O²Ù×÷µÄ½á¹û
- ËüûÓÐÖ÷¶¯½øÈëµÈ´ý״̬£¨Ò²¾ÍÊÇûÓе÷Óá¯wait¡¯£©
- ûÓб»Í£Ö¹£¨ÀýÈ磺µÈ´ýÖÕÖ¹£©
LinuxϵͳÖУ¬Í¨¹ýºÜ¶àÃüÁî¶¼¿ÉÒԲ鿴µ±Ç°µÄϵͳƽ¾ù¸ºÔØÖµ£¬±ÈÈ磺w£¬top»òÕßuptimeÃüÁî
ÃüÁîÊä³öµÄÄÚÈݱíʾÔÚ¹ýÈ¥µÄ1¡¢5¡¢15·ÖÖÓÄÚÔËÐжÓÁÐÖÐµÄÆ½¾ù½ø³ÌÊýÁ¿¡£
ͨ³£Çé¿öÏ£¬ÕâЩֵ»á¸ù¾ÝϵͳµÄCPU¸öÊýÓÐÒ»Ð©Çø±ð£¬¶ÔÓÚµ¥ºËCPUÀ´Ëµ£¬Èç¹û¸ºÔØÖµ´ïµ½ÁË1£¬±íÃ÷ϵͳ¸ºÔØÒѾ´ïµ½ÁË100%£¬²»¹ý¶ÔÓÚË«ºËϵͳÀ´Ëµ£¬1Ö»±íʾϵͳ¸ºÔØÖµÖ»´ïµ½50%×óÓÒ¡£
ÒÔ´ËÀàÍÆ£¬ÔÚ¶à´¦ÀíÆ÷ϵͳÖУ¬¸ºÔؾùÖµÊÇ»ùÓÚÄں˵ÄÊýÁ¿¾ö¶¨µÄ¡£ÒÔ 100% ¸ºÔؼÆË㣬1.00 ±íʾµ¥¸ö´¦ÀíÆ÷£¬¶ø 2.00 Ôò˵Ã÷ÓÐÁ½¸öË«´¦ÀíÆ÷£¬ÄÇô 4.00 ¾Í˵Ã÷Ö÷»ú¾ßÓÐËĸö´¦ÀíÆ÷¡£
¸ù¾Ýϵͳ¸ºÔØÖµ×Ô¶¯ÖØÆôWeb·þÎñ
ÏÂÃæµÄ½Å±¾£¬ÒÔ×°ÓÐApache·þÎñÆ÷µÄVPSΪÀý£¬¶¨Ê±ÅжÏϵͳ¸ºÔØÖµ£¬µ±´ïµ½5ʱ£¬ÈÏΪϵͳÒѾ³¬¸ººÉÔËת£¬Õâʱ£¬½Å±¾»á×Ô¶¯ÖØÆôApache·þÎñ£¬ÊÍ·Åϵͳ×ÊÔ´£¬ÒÔ´ïµ½ÈÃVPS·þÎñÆ÷ƽÎÈÔËÐеÄÄ¿µÄ¡£
¸ù¾Ýϵͳ¸ºÔØÖµ×Ô¶¯ÖØÆôWeb·þÎñ
ÏÂÃæµÄ½Å±¾£¬ÒÔ×°ÓÐApache·þÎñÆ÷µÄVPSΪÀý£¬¶¨Ê±ÅжÏϵͳ¸ºÔØÖµ£¬µ±´ïµ½5ʱ£¬ÈÏΪϵͳÒѾ³¬¸ººÉÔËת£¬Õâʱ£¬½Å±¾»á×Ô¶¯ÖØÆôApache·þÎñ£¬ÊÍ·Åϵͳ×ÊÔ´£¬ÒÔ´ïµ½ÈÃVPS·þÎñÆ÷ƽÎÈÔËÐеÄÄ¿µÄ¡£
#!/bin/sh
#usage: */2 * * * * root /root/checkload.sh >>/root/checkload.log
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 "AutoStart:" $(date +"%y-%m-%d %H:%M:%S") "pkill httpd" `ps -ef | grep httpd | wc -l`
pkill httpd
sleep 10
for i in 1 2 3
do
if [ `pgrep httpd | wc -l` -le 0 ]
then
service httpd start
sleep 15
echo "AutoStart:" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l`
fi
done
else
if [ `pgrep httpd | wc -l` -le 0 ]
then
service httpd start
sleep 15
echo "AutoStart:" $(date +"%y-%m-%d %H:%M:%S") "start httpd" `ps -ef | grep httpd | wc -l`
fi
fi
½Å±¾ÖÐTOP_SYS_LOAD_NUM±íʾ×î´óÔÊÐíµÄϵͳƽ¾ù¸ºÔØÖµ£¬µ±³¬¹ýÕâÒ»ÖµµÄʱºò£¬½Å±¾¾Í¿ªÊ¼ÖØÆôapache·þÎñ¡£½Å±¾µÄʹÓÃҲͦ¼ò±ã£¬Ö±½Óµ½/etc/cron.d/ ½¨Á¢Ò»¸ö¶¨Ê±Ö´ÐÐÎļþ£¬ÌîÈëÈçÏÂÄÚÈݼ´¿É£º
*/2 * * * * root /root/checkload.sh >>/root/checkload.log
ÕâÀï*/2£¬±íʾÿÁ½·ÖÖÓÖ´ÐÐÒ»´ÎÖ¸¶¨µÄ½Å±¾£¬²¢½«Ö´Ðнá¹ûÊä³öµ½/root/checkload.logÎļþÖС£
ÄãÒ²¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄÐèÒª£¬À´ÐÞ¸ÄÖ´ÐÐÆµÂÊ¡£
С½á
´Ë½Å±¾ÒѾ²¿Êðµ½ÎÒµÄVPSÉÏÒ»¶Îʱ¼ä£¬´ÓʹÓõÄÇé¿öÀ´¿´£¬Ð§¹û»¹±È½Ï²»´í¡£