2

次の設定があります。

仮想サーバー、Intel Xeon X5650 @ 2.67Ghz (4 プロセッサ) 8 GB RAM Windows サーバー 2008 Standard 64 ビット Sql Server Express IIS 7.5

私たちのデータベースはわずか 200MB です。ASP.net アプリを実行しています。最近、いくつかのパフォーマンスの問題が発生しました。最大 200 の同時接続により、100% の CPU 使用率 (ほとんどは IIS によって消費されます) が発生し、応答時間が約 20 秒になりました! コードを微調整した後、1500 人の同時ユーザーで 1 分間にわたってloader.ioから負荷テストを実行できるようになりました。終了時の応答時間は約 5 秒で、CPU は約 95% でした。これも主に IIS によって消費されます。私たちのメモリは約4GBの使用量で座っていました. ただし、短時間で最大 4000 人のユーザーが 1500 人を超えるスパイクが予想されます。

私の質問は次のとおりです: 1) これは現在のセットアップの通常のパフォーマンスですか? 私たちのサイトはデータベースに非常に集中しており、Entity Framework を使用しています。2) Sql Web エディションにアップグレードすると、データベースが非常に小さいように見えますか? 3) このタイプの設定で 4000 人のユーザーを処理できると思いますか? 4) この負荷を処理するために私たちができることについて何か提案はありますか?

これはやや主観的であることは承知していますが、どんな回答でも大歓迎です。

4

4 に答える 4

1

これは、現在のセットアップの通常のパフォーマンスですか?

コードによって異なります。そこにばかげたことがないことを確認するために、コードをプロファイリングしましたか?

私たちのサイトはデータベースに非常に集中しており、Entity Framework を使用しています。

繰り返しになりますが、エンティティ フレームワークに多くの時間を費やしていることがわかりましたか? それは遅いですが、問題は「集中的」が何を意味するかです。これがプロファイラーの目的です。

私たちのデータベースが非常に小さいように見えるので、Sql Web エディションにアップグレードするメリットはありますか?

助けて、私のピザが遅すぎる。より大きな車にアップグレードすると役に立ちますか? SQL Server ではなく、IIS で時間を費やしていると自負しています。

このタイプのセットアップで 4000 人のユーザーを処理できると思いますか?

私の車は十分大きいと思いますか?何のためにそれが必要なのかは教えていないことに注意してください。使用パターンとコードを見なければ、わかりません。つまり、サーバーは、現在購入しているものと比較して哀れです. そのため、これは無関係な質問です。必要に応じてアップグレードしてください。

この負荷を処理するために私たちができることについて何か提案はありますか?

テストとプロファイラーをロードし、コードを最適化します。より大きなサーバーを入手してください。あなたのコードがどれほど良い/悪い/馬鹿げているかを判断するための水晶玉を持っていないことを認識してください.

于 2012-12-06T05:52:29.390 に答える
0

私の経験では、同時要求の最も重要な側面は、サーバー メモリの量と、コードによるこのメモリの消費量です。

物理メモリが消費されると、サーバーは物理メモリから仮想メモリへのスワップを開始し、処理が大幅に遅くなり、説明した症状が発生します。

サーバーに8GBのRAMを追加することから始めます。それまでの間、リクエスト中に処理されるデータが少なくなるように、または使用されるメモリが少なくなるように、コードを最適化してみてください。また、メモリの可用性に関して iis と sql サーバーの間で競合が発生しないように、sql サーバーを別のマシンに移動します。

于 2013-05-26T17:58:02.397 に答える
0

ここで生じる一番の疑問は、プロジェクトの RELEASE または DEBUG でコンパイルされたバイナリを展開したかどうかです。

バージョンの違いは非常に単純であるため、WebEdition にアップグレードしても問題は解決しません。WebEdition は内部スケジューラなどで調整されているだけです。- したがって、通常版で問題ありません。

于 2013-05-26T16:56:57.727 に答える