2016-04-13 53 views
1

次のサーバー構成で大規模なERPシステムを実行しています。アプリケーションは、AngularJSとASP.NETを使用して開発されています。IISサーバーのRAM使用量を増やす

Dell PowerEdge R730(クアッドコア2.7GHz、32GB RAM、5×500GBハードディスク、RAID5構成)ソフトウェア:ホストOSはVMWare ESXi 6.0 2台のVMは稼働していますVMWare ESXi .. 1つはWindows Server 2012 R2で、16 GBのメモリが割り当てられています。これにはアプリケーションコードのあるIIS 8サーバーが含まれています。もう1つのVMはSQL Server 2012と16 GBのメモリが割り当てられたWindows Server 2012 R2です。私のアプリケーションデータベースを含んでいます。

私はロード・バランシングの目的でアプリケーション・サーバーとデータベース・サーバーを分けました。

私のアプリケーションが要求のこのボリュームをサポートするために負荷が(10分1万人の以上の訪問者の周りに)非常に非常に高いことが期待されている登録モジュール

が含まれている、私は私のIISサーバーで次のことを行っています - >アプリケーションプール長の要求キューを5000に増やす - > aspxファイルの出力キャッシュを有効にする - > IISサーバーで静的および動的圧縮を有効にする - >各アプリケーションプールの仮想メモリ制限とプライベートメモリ制限を0に設定 - >最大ワーカープロセスを増やす各アプリケーションプールを6

私は自分のアプリケーションで負荷テストを実行するために使用されます。一度に500人のユーザーを登録モジュールに注入しました。

しかし、RAMの40%/ 45%しか使用されていないことがわかります。各ワーカープロセスは最大130 MB程度しか使用していません。

ガートリングは、私の要求の約20%が403エラーを受け取り、すべてのHTTP要求の60%以上が20秒を超える応答時間を持っていると報告しています。

1人のユーザーが約3分間に380のHTTP要求を作成します。 1人のユーザーの合計データ転送は1.5 MBです。私はこのように500人のユーザーをシミュレートしました。

サーバーのチューニングに欠けていることはありますか?メモリリークを最小限に抑え、タイムアウトを増やすなど、アプリケーションコードを調整しました。

+0

このページの正確な403エラーは何ですか:https://en.wikipedia.org/wiki/HTTP_403 403.502の解は403.18とはまったく異なります。 RAMの不足は問題ではない可能性が非常に高いです。CPUがこれらのすべての並列要求を処理する必要があるかもしれません。 –

+0

要求に時間がかかり、非同期として書かれていない場合、より多くの作業者が必要になる可能性があります。 20人の労働者と同じことをするとどうなりますか? 100? –

+0

20/30人の従業員では結果は同じです...そして50人の従業員がいると、アプリはさらに減速します – Shuaib

答えて

1

Broadcomネットワークチップセットを使用する最新世代のPowerEdgeサーバーには、既知の問題があります。どうやら、ネットワークの "VM"機能が壊れてしまい、VM上で恐ろしいネットワーク待ち時間が発生します。

  1. 最新のファームウェアとBroadcomのWindowsドライバを入手してください。

  2. VMWareのダウンロードに頭とNUMAノードがあるように、ワーカープロセスの設定については

は、最大のパフォーマンスのために、あなたはワーカープロセスの同じ数を実行することを検討すべき最新のBroadcomドライバを取得ワーカープロセスとNUMAノードの間に1対1の親和性があることを示します。これは、 "Maximum Worker Processes" AppPool設定を0に設定することで実行できます。この設定では、IISはハードウェアで使用可能なNUMAノードの数を判断し、同じ数のワーカープロセスを開始します。

関連する問題