0

ゲームサーバーリストを作成していますが、特定のサーバーの稼働時間を測定したいと思います(具体的には、稼働時間はパーセントで表示する必要があります)。

スクリプトのcronジョブを構成しました。これは、サーバーが稼働しているか停止しているかを5分ごとにチェックするため、サーバーのステータスを簡単に取得できます。

上記のデータに基づいて、各サーバーの稼働時間をどのように測定できるかについてのアイデアが必要です。スクリプトが実行されている1分ごとに、各サーバーのダウンタイムとアップ時間を節約する必要がありますか?

4

5 に答える 5

2

多くの詳細を気にせず、アップタイムとダウンタイムだけが必要な場合。次に、2 つの数値をファイルに保存できます。1 つは現在のパーセンテージで、もう 1 つはスクリプトが実行した現在の測定数です。

例: 「96 800」。

次に、スクリプトが実行されるたびに、パーセンテージ (96) が X、保存数が Y (800)、現在のメジャーが 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;

もちろん、これは単なる疑似コードであり、すぐには機能しません。これは、それを行う 1 つの方法のアイデアを提供するためのものです。ファイルを読み取って、これら 2 つの数値を含むページの任意の場所に保存する方法も含める必要があります。

Jamie が述べたように、これは、サーバーがダウンしているにもかかわらず、crontime がまだ機能していることを前提としています。

PS、他のサーバーからシステムを追加してこのサーバーの稼働時間を確認することもできますが、統計的に計算する必要があります(他の多くのサーバーを追加するとエラーは0になる傾向がありますが、それは難しすぎます)。他のサーバーの稼働時間も考慮する必要があります...

于 2012-03-31T22:46:45.863 に答える
1

ファイルを解析でき/proc/uptimeます。これはLinux上のテキストファイル(順番に読む必要があります)であり、サーバーマシンの稼働時間を示します。

   % cat /proc/uptime 
   129657.69 506917.57

詳細については、proc(5)のマニュアルページを参照してください。

PS。/proc/(疑似ファイルを使用して)ファイルシステムを読み取る場合、実ディスクIOは関係しません。だからそれを読むのは本当に速いです。

于 2012-04-01T06:57:54.723 に答える
0

Apache サーバーについて話しているのですか、それともコンピュータ サーバー全体について話しているのですか? Apache のみを監視している場合:

システム全体を監視したい場合、ホスト OS がダウンしている場合は実行されないため、cron ジョブは少し無駄かもしれません。この場合、サーバー ログには必要なすべての情報が含まれているはずです。

于 2012-03-31T22:38:51.760 に答える
0

あなたの質問は明確ではありません.リモートサーバーのアップタイム統計を取得したい場合、SSHはオプションです.1つのサーバーでcronをスケジュールして、他のサーバーのアップタイムをリモートでチェックするスクリプトを実行します.

于 2012-03-31T22:45:26.927 に答える
-1

「ゲーム サーバー」が実際の UNIX または Linux 仮想マシンで実行されている場合は、実際のサーバー アップタイムを測定することをお勧めします。

Unix ライクなオペレーティング システムでは、次のようなコマンドがありますuptime

[ghoti@pc ~]$ uptime
 6:37PM  up 10 days,  1:26, 52 users, load averages: 0.26, 0.35, 0.34
[ghoti@pc ~]$ 

PHP からシェル コマンドを実行できる場合は、この出力を PHP の変数にキャプチャし、それを解析して実際のサーバーのアップタイムを判断できます。これを好きな場所に記録しますが、お気に入りの方法の 1 つはRRDToolグラフを使用することです。RRD はデータベース形式であり、 MuninCactiなどのツールを使用してグラフを作成できます。数字としての稼働時間よりも興味深いかもしれません!

一方、サーバーがオフラインになったときに人々に自動的に通知する機能も必要で、あらゆる種類のサービス (HTTP、SMTP、Unreal Server など) を監視する柔軟性が必要な場合は、ツールを見てください。NagiosIcingaのように。

于 2012-03-31T22:47:15.267 に答える