私はゲームサーバーのリストを作成しています。特定のサーバーの稼働時間を測定したいと思います(具体的には稼働時間をパーセントで表示する必要があります)。サーバの稼働率を測定する
私のスクリプト用にcronジョブを設定しました。これはサーバーが稼働中か停止中かを5分ごとにチェックしているので、簡単にサーバーのステータスを取得できます。
私は、上記のデータに基づいて各サーバーの稼働時間を測定する方法について考えが必要です。スクリプトを実行するたびに各サーバーの時間を節約しておく必要がありますか?
私はゲームサーバーのリストを作成しています。特定のサーバーの稼働時間を測定したいと思います(具体的には稼働時間をパーセントで表示する必要があります)。サーバの稼働率を測定する
私のスクリプト用にcronジョブを設定しました。これはサーバーが稼働中か停止中かを5分ごとにチェックしているので、簡単にサーバーのステータスを取得できます。
私は、上記のデータに基づいて各サーバーの稼働時間を測定する方法について考えが必要です。スクリプトを実行するたびに各サーバーの時間を節約しておく必要がありますか?
多くの詳細を気にせず、アップタイムとダウンタイムが必要な場合は、次に、ファイルに2つの数値を保存することができます.1つは現在の割合で、もう1つはスクリプトが取った現在の数値です。
例:'96 800 '
そして、スクリプトが実行されるたびに、パーセンテージ(96)がXであると仮定すると、この式を使用し、節約の数は、(800)Yであり、現在の尺度は、Z(0または1)
X=X/100;
X=(X*Y+Z)/(Y+1); //You get the new value of the percentage, X. Be careful as they need to be long values.
Y=Y+1; //And the current number of interactions.
X=X*100;
これはもちろん擬似コードであり、すぐには機能しません。それを行う方法の一例を伝えるだけです。ファイルを読んで、それらの2つの数字を含むページのどこにでも保存する方法も含める必要があります。
Jamieが述べているように、これはサーバーがダウンしてもcrontimeが動作していることを前提としています。
PS他のサーバーのシステムを追加してこのサーバーの稼働時間を確認することもできますが、統計的に計算する必要があります(他のサーバーが多数追加されてもエラーは0になりますが、
あなたはApacheサーバーまたはコンピュータサーバー全体について話していますか?あなたはApacheのみを監視している場合:
をあなたは、システム全体を監視する場合、そのホストOSがダウンしている場合、cronジョブは、彼らが実行されませんので、少しも無駄かもしれません。この場合、サーバーログには必要なすべての情報が含まれている必要があります。
あなたの質問は明確ではありません。リモートサーバの稼働時間の統計情報を取得するには、SSHがあるサーバのoption.schedule cronで、他のサーバの稼働時間をリモートで確認するスクリプトが必要です。
"ゲームサーバー"が実際のUNIXまたはLinux仮想マシンで実行されている場合は、ACTUALサーバーの稼働時間を測定することをお勧めします。 Unixライクなオペレーティングシステムで
は、次のコマンドは、uptime
と呼ばれています:
[[email protected] ~]$ uptime
6:37PM up 10 days, 1:26, 52 users, load averages: 0.26, 0.35, 0.34
[[email protected] ~]$
あなたはPHPからシェルコマンドを実行する能力を持っている場合は、あなたがPHPで変数に、この出力をキャプチャして解析することができますそれは実際のサーバーの稼働時間を決定するために使用します。好きな場所にこれを記録しますが、好きな方法の1つはRRDToolグラフを使用することです。 RRDがデータベース形式の場合、MuninまたはCactiのようなツールを使用してグラフを作成できます。数だけの稼働時間よりも面白いかもしれません!
一方、サーバーがオフラインになったときに自動的に人に人に通知し、任意の種類のサービス(HTTP、SMTP、Unreal Serverなど)を柔軟に監視する必要がある場合は、 NagiosやIcingaなどのツールをご覧ください。
/proc/uptime
ファイルを解析できます。これは、サーバー・マシンの稼働時間を与えて、(あなたが順番に読んでください)Linux上でテキスト形式のファイルです:proc(5) manページで
% cat /proc/uptime
129657.69 506917.57
詳細。
PS。実際のディスクIOは、/proc/
のファイルシステム(擬似ファイルを含む)を読むときは関係しません。それを読むことは本当に速いです。
そして、あなたの数式に基づいて、サーバーの稼働時間はオフラインで減少し、オンラインで増加します。 – Cyclone
正確に。 Z = 0の場合、これは(この例では)X = 0.96 * 800/801となり、実際には稼働時間が短縮され、800/801 <1となります。一方、Z = 1の場合、X =(0.96×800 + 1)/ 801となる。これは0.96よりわずかに大きいことが証明できます(この小さなコメントではありません)。しかし、厳密に言えば稼働時間ではありません。あなたが尋ねたように、稼働時間のパーセンテージです。 –
さて、この素晴らしい答えに感謝します。 – Cyclone