设为首页收藏本站我的广告

运维网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索

监控VPS负荷超出自动重启脚本

2012-4-27 14:03| 发布者: admin| 查看: 824| 评论: 0|原作者: 运维网|来自: 网络

VPS其实和一般的独立Linux服务器,在使用上基本没有区别,因为现在的虚拟化技术以及很成熟了,不过VPS和独服还是有一个很大的差异,那就是系统资源和性能上。通常,VPS都是由一个独立服务器划分出来的,所以在资源和性能优势上,远比不上独服。

Linux系统负载介绍

系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:

- 它没有在等待I/O操作的结果

- 它没有主动进入等待状态(也就是没有调用'wait')

- 没有被停止(例如:等待终止)

Linux系统中,通过很多命令都可以查看当前的系统平均负载值,比如:w,top或者uptime、top命令

命令输出的内容表示在过去的1、5、15分钟内运行队列中的平均进程数量。

通常情况下,这些值会根据系统的CPU个数有一些区别,对于单核CPU来说,如果负载值达到了1,表明系统负载已经达到了100%,不过对于双核系统来说,1只表示系统负载值只达到50%左右。

以此类推,在多处理器系统中,负载均值是基于内核的数量决定的。以 100% 负载计算,1.00 表示单个处理器,而 2.00 则说明有两个双处理器,那么 4.00 就说明主机具有四个处理器。

根据系统负载值自动重启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上一段时间,从使用的情况来看,效果还比较不错。

下一篇:9步彻底解决IIS7服务器安全问题

上一篇:Linux服务器用Crontab来实现VPS自动化


鲜花

握手

雷人

路过

鸡蛋
加入阿里云推荐返利15%

最新评论

QQ|申请友链|sitemap|手机版|小黑屋|Archiver|运维网 ( 京ICP备16008201号  

GMT+8, 2016-12-5 12:30 , Processed in 0.100894 second(s), 28 queries , Xcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

返回顶部