3

Ping.SendAsync(host、3000、null)を使用してローカルネットワーク内のサーバーにpingを実行し、接続を確認してデータを送信するアプリ(クライアント)をC#で構築しています。アプリは約200台のPCにインストールされます。

質問は:

1日中200台のPCから5秒ごとにサーバーにpingを実行しても安全ですか?

前もって感謝します

4

2 に答える 2

5

あなたはすでにこれに対する答えを知っているはずです-それは依存します

平均して1秒あたり40件のリクエストを送信しているとします。Webサーバーは1秒あたり40のリクエストを処理できますか?可能性はありますが、サーバーが実行していることの詳細は提供しません。

サーバーがリクエストを受信して​​単純な値を返す場合、ミリ秒数は1桁である可能性があります。サーバーがディスクの読み取りまたは書き込みを行う必要がある場合、または別のサーバー(データベースなど)に接続する必要がある場合、ミリ秒数は2桁になる可能性があります。リモートサーバーまたは複数のサーバーに接続する場合は、3桁かかる場合もあります(100ミリ秒以上)。

サーバーがいくつかの数値を計算して何かを計算する必要がある場合、推測する方法はありません-私が知っている限り、1日かかる可能性があります。

サーバーが専用のリソースを必要とする他の重要なシステムを実行していないと仮定すると、ここで2つのことに本当に関心があります。

  • 操作が完了するまでにどのくらい時間がかかりますか?サーバーはその時点で別のリクエストを作成する必要があり、単にキューに入れて混乱を引き起こすため、明らかに5秒以内に完了する必要があります。
  • サーバーはいくつの同時リクエストを処理できますか?シングルスレッドサーバーを実行していないことを確認してください。複数のリクエストを同時に処理できるようにする必要があります。これにより、リクエストがキューに入れられないようになります。

1秒あたり平均40である必要がありますが、これは実際にはそれほど多くはありません。処理があまり行われていないと仮定した場合です。しかし、これが「良いアイデア」であるかどうかを知る方法は、単にそれをテストすることです。テストフレームワークを使用するか、テストハーネスを作成する必要があります。これは非常に簡単で、サーバーにできるだけ速くアクセスするアプリを作成するだけです。複数のクライアントマシンからテストを実行する必要があります。そうしないと、単一のクライアントマシンがボトルネックになっていないかどうかがわかりません。

これは退屈に聞こえるかもしれませんが、それは必要であり、教育的でもあります。

于 2012-09-24T03:07:13.310 に答える
0

それは 1 日約 110MB しかありません...私はそれについて強調しません。

ただし、データの送信について言及しています...パケットが適切なサイズであることを確認してください(自分でDDOSを避けたい)。

ただし、インターネット上で実行されている場合は、もっと注意が必要かもしれません。

于 2012-09-24T02:48:26.773 に答える