Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> システム負荷の値に応じてWebサービスを自動的に再起動する

システム負荷の値に応じてWebサービスを自動的に再起動する

  
VPSは、一般的なスタンドアロンLinuxサーバーと基本的に同じですが、仮想化テクノロジは現在非常に成熟しているため、基本的に使用方法に違いはありません。それはシステムリソースとパフォーマンスです。通常、VPSは別のサーバーで分割されているため、リソースとパフォーマンスの面では、1つのサービスよりはるかに少なくなります。

は80につながった、メモリリソースが枯渇している、システム負荷が高すぎる実際には、DDOSもVPS(またはサーバ)を攻撃され、その結果、開始した多数の要求を使用し、VPS DDOS攻撃によっていくつかの時間前にこれを取りますポートのHTTPサービスが応答しないため、究極の攻撃を達成します。 DDOSは防御できませんが、DDOSの影響を軽減する方法は常にあります。たとえば、システムの状態を定期的に監視してからWebサービスを自動的に再起動するには、これもこの記事で紹介する方法です。

VPS攻撃、システムのいくつかの指標システムが攻撃を受けている場合には反応することができ、メモリの残量が、もちろん、これは最も正確な方法ではないという見解、別のがあります見ていますLinuxの平均システム負荷値。

Linuxシステムの負荷平均負荷導入で
システムは、特定の時間間隔内で平均キューを実行しているプロセスツリーとして定義されます。プロセスが次の条件を満たす場合、それは実行キューに入ります。 - 入出力操作の結果を待っていません - 積極的に待ち状態に入りません(つまり、呼び出しはありません)。

)「が待つ」 - 停止されていません(例:終了)

Linuxシステムを待って、多くのコマンドは、例えば、現在のシステム負荷平均値で見ることができます:、上部または稼働時間wはコマンドこのコマンドの出力は、過去1、5、および15分における実行キュー内のプロセスの平均数を示しています。

通常、これらの値はシステム内のCPUの数によって異なりますが、シングルコアCPUの場合、負荷値が1に達するとシステム負荷は100%に達しますが、デュアルコアシステムの場合はそうです。つまり、1はシステム負荷値が約50%にすぎないことを意味します。

など、マルチプロセッサシステムでは、平均負荷はコアの数に基づいています。 100%の負荷では、1.00はシングルプロセッサを表し、2.00はデュアルプロセッサが2つあることを意味し、4.00はホストに4つのプロセッサがあることを意味します。

システム負荷値に応じてWebサービスを自動的に再起動します。

次のスクリプトは、ApacheサーバーでVPSを使用してシステム負荷値を定期的に判断する例です。この時点で実行すると、スクリプトは自動的に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 '/、//'`

echo $(date + "%y-%m- %d ")` uptime`
if [`echo" $ TOP_SYS_LOAD_NUM< $ SYS_LOAD_NUM "bc` -eq 1]
then
エコー" AutoStart: "$(date +"%y-%m - %d%H:%M:%S ")" pkill httpd "` ps -ef grep httpd wc -l` pkill httpd
スリープ10
in 1 2 3
do <[pgrep httpd wc -l] -le 0の場合<サービス> httpd start
sleep 15
echo "AutoStart:" $(date + "%y-%m- %d%H:%M:%S ")" httpdを開始 "` ps -ef grep httpd wc -l`完了
その他
if [`pgrep httpd wc -l` -le 0] service httpd startスリープ15 echo "AutoStart:" $(日付+ "%y-%m-%d%H:%M:%S") "start httpd" `ps -ef grep httpd wc -l`スクリプトのTOP_SYS_LOAD_NUMは、この値を超えたときの最大許容システム平均負荷値を示します。スクリプトがapacheサービスの再起動を開始します。スクリプトの使い方も非常に簡単で、/etc/cron.d/に直接アクセスして時限付き実行可能ファイルを作成します。次の内容を入力します。


* /2 * * * root /root /checkload .sh>> /root/checkload.log


ここで* /2は、指定したスクリプトが2分ごとに実行され、実行結果が/root/checkload.logファイルに出力されることを意味します。 。

必要に応じて実行頻度を変更することもできます。

概要

このスクリプトはしばらくの間私のVPSに導入されてきましたが、使用状況からすると、その効果はかなり良好です。

Copyright © Windowsの知識 All Rights Reserved