IISでホストされている非常に単純な.NET Webサービスをテストしています。 Webサービスは単純な計算を実行して整数を返す単なる方法です。私は500スレッドを使用してこのメソッドをテストするために別のサーバーにJMeterを構成しました。各スレッドは500回ループします。したがってこのメソッドは250,000回呼び出され、スループットと応答時間をグラフで示します。同期ガーベジコレクションがパフォーマンス上の定期的なスパイクの原因になりますか?
したがって、グラフにはスループットと応答時間を示す250,000ポイントが含まれています。ただし、スループットと応答時間の両方のグラフでは、データセット内の非常に規則的な異常値が表示されます。非常に規則的な間隔では、スループットが非常に短く低下し、対応する応答時間が増加します。各チャートの250,000ポイントのうち、50〜75のアウトライアがあります。
これは非常に小さい割合であり、全体的なパフォーマンスへの影響は問題ではありませんが、私は異常値の原因を理解したいと思います。これまでの私の唯一の理論は、asp.netの同期ガベージコレクションはアプリケーションを一定の間隔で数秒間休止させることです。
ガベージコレクタがこれらのスループットの低下/応答時間の増加を引き起こすかどうかを知りたいですか?
O/Sに問題がある可能性がありますが、ここでは推測的な回答は必要ありません。
「投機的回答」を避けるために、サービス設定とサービスコードを投稿する必要があります。 – oleksii
ありがとう!その500 * 500.私は手にconfigsを持っていないが、私は後で投稿します。実際には、有用な投機的な答えを歓迎するだろうが、質問を投票したくない:) – JMc
ガベージコレクタ用のサーバアルゴリズムが得られるだろう。これは、ゴミを収集している間にすべてのスレッドを一時停止します。これは、スループットテストで顕著になります。 .configファイルの ''要素を使用して無効にすることで、ワークステーションアルゴリズムで同時収集をサポートできるようになります。全体的なスループットを犠牲にして。または、.NET 4.5を待つ –