国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Web服務器 > 正文

根據系統負載值自動重啟Web服務

2024-09-01 13:43:50
字體:
來源:轉載
供稿:網友
VPS其實和一般的獨立Linux服務器,在使用上基本沒有區別,因為現在的虛擬化技術以及很成熟了,不過VPS和獨服還是有一個很大的差異,那就是系統資源和性能上。通常,VPS都是由一個獨立服務器劃分出來的,所以在資源和性能優勢上,遠比不上獨服。 

就拿前段時間本VPS受到的DDOS攻擊來說,其實DDOS也是利用大量發起的請求,導致被攻擊VPS(或服務器)內存資源被耗盡,系統負載過高,而導致80端口的Http服務無響應,從而達到最終的攻擊目的。DDOS雖然防不勝防,不過總還是有一些辦法,能把DDOS的影響減小的。比如定時監控系統狀態,然后自動重啟Web服務,這也是本文要介紹的一種方法。 

在VPS被攻擊的時候,有一些系統指標能反應出系統是否處于被攻擊狀態,一個就是查看內存剩余量,當然,這并不是最準確的方法,另外一種,就是查看Linux的系統平均負載值。 

Linux系統負載介紹 

系統平均負載被定義為在特定時間間隔內運行隊列中的平均進程樹。如果一個進程滿足以下條件則其就會位于運行隊列中: 

- 它沒有在等待I/O操作的結果 

- 它沒有主動進入等待狀態(也就是沒有調用’wait’) 

- 沒有被停止(例如:等待終止) 

Linux系統中,通過很多命令都可以查看當前的系統平均負載值,比如:w,top或者uptime命令 

根據系統負載值自動重啟Web服務


命令輸出的內容表示在過去的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   grephttpd   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   grephttpd   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   grephttpd   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上一段時間,從使用的情況來看,效果還比較不錯。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 普洱| 大足县| 中方县| 金乡县| 临泉县| 瓦房店市| 河间市| 雅江县| 青冈县| 英德市| 汪清县| 根河市| 峨眉山市| 丘北县| 兴化市| 昌都县| 泊头市| 定襄县| 丰宁| 中西区| 高邮市| 民和| 磴口县| 罗平县| 五河县| 山丹县| 鄂托克旗| 兴仁县| 天峻县| 棋牌| 木里| 城市| 麻阳| 丘北县| 渝北区| 咸宁市| 吴桥县| 古田县| 玛曲县| 浦江县| 昌宁县|