私たちの製品 (.NET-Web に組み込まれている) とハードウェア RAM によって消費されるメモリに関して、私は独特の状況にあります。
製品が展開されている顧客は、本番環境で次の構成を持っています。
ハードウェア:
- [a] デュアル XEON X5570 2.93GHz クアッド コア CPU、3.33GHz ターボ、6.4GT/s QPI、8MB キャッシュ [b] 144GB RAM - メモリ [c] 8x 600GB 10K 2.5" SAS HDD [d] SMART ARRAY P410i RAID コントローラーバッテリーと 256MB キャッシュ [e] 4x ギガビット イーサネット [f] デュアル 460W 電源
ソフトウェア (オールインワンボックス):
- [a] Windows Server 2012 - 64 ビット [b] .NET Framework 4.5 [c] SQL Server
2012 エンタープライズ サーバー エディション
現在、144 GB の RAM と大容量の HDD があるため、お客様は、アプリケーションが「超高速」で実行され、パフォーマンスが向上することを期待しています。
お客様は完全に非 IT 組織です。RAM/HDD の増加量に関係なく、Windows OS は最終的に (.NET フレームワークと SQL エンジンを介して) プログラムに割り当てることができるメモリの量に制限があるため、既に説明する必要があります。特定の .NET プログラムは、適切に連続したフラットなセグメント化されていないメモリ領域で「実行」されます。
彼らはこの議論を消化することができません。だから私は、これらの行について説明している技術記事、ブログ、またはそのようなものがあるかどうかをグーグルで調べましたが、あまり成功していません. 基本的に、いくつかの Web 記事の参照を通じて伝える必要があるのは、ハードウェアをどれだけ改善しても、実行中のプログラムに割り当てられるメモリの量は OS によって管理および制限されるということです。
Windows-64bit-Server-2012 によって特定の .NET プログラムの実行 (または SQL-2012-store-手順の実行)。
たとえば、このリンクhttp://duartes.org/gustavo/blog/post/anatomy-of-a-program-in-memoryは、32 ビット OS について次のように述べています。 「マルチタスク OS の各プロセスは、独自のメモリ サンドボックスで実行されます。このサンドボックスは仮想アドレス空間であり、32 ビット モードでは常にメモリ アドレスの 4GB ブロックです。」
64 ビットの Windows-SERVER-2012 OS について、ブログ/msdn の参照として、同様のものを探しています。 ..!!!