サーバーのHttpRequestのパフォーマンスを測定する方法は?HttpRequestのパフォーマンスを測定する
私はそれが重要な課題であり、多くの人々がこの課題を解決したと思います。
私は説明します。 私は並列に呼び出す多くのユーザーサーバー要求を持っており、同じ要求のパフォーマンスメトリックを測定したいと思っています。例えば
:
10:00:00AM request 1 duration 200 ms: /some_request/data
...
11:00:00AM request 2 duration 700 ms: /some_request/data
...
11:30:00AM request 3 duration 300 ms: /some_request/data
...
あなたは一般的な問題は、要求の期間は常に飛び込んだ、と私たちは、要求性能の真の変化について言うことができないということである見ることができるように。同じリクエストの継続時間の差(注:同じjsonデータ1-1の場合)は予測できません。
の例では、私は対策をしようとは、そのような期間を要求します。
public class PerformanceFilter : IActionFilter
{
private Stopwatch timer = new Stopwatch();
public void OnActionExecuting(ActionExecutingContext filterContext)
{
timer.Reset();
timer.Start();
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
timer.Stop();
var duration = timer.ElapsedMilliseconds;
}
}
は、それは間違った方法だことができますか?あるいは、要求パフォーマンスの変化を検出するために、他の要求特性を使用できますか?
仮想マシンからこの "浮動小数点"ビヘイビアを削減または削除するにはどうすればよいですか?それとも「シンプル」ではないのですか? –
フロートを管理することはできません。これはソフトウェア仮想化環境で行われるタイムスライスの自然な動作です。ハイパーバイザーは、同期するタイミングと頻度を決定します。パフォーマンステストでは、制御要素、特に物理ハードウェア上の少数のテストエージェントを実行する単一のマシンでフロートを管理します。物理的なハードウェア上のコントロールグループと仮想マシン上で実行されている残りのものとの動作の違いを調べることによって、スキューを見積もることができます。これを6シグマ製造品質管理サンプリングのように考えてください。 –
「CPU使用率」など、いくつかのメトリックはどのくらいですか(継続時間ではありません)。 HTTPリクエストのパフォーマンスを測定できますか? –