これがMSDNに関する記事で、あなたの質問に対処しているようです(Johnが以下で指摘しているように、これはWindows Server 2000にのみ適用されるため、ほとんどの人はおそらく無視する必要があります):MSMQアプリケーションのリソース管理。具体的には:
MSMQ1.0およびMSMQ2.0の場合、1台のマシンに格納できるメッセージの合計サイズは、マシンのRAMの量やハードディスクのサイズではなく、MSMQに提供される仮想アドレス空間の量に制限されます。オペレーティングシステムによるサービス(この制限はMSMQ 3.0で解除されました)。x86マシンの各プロセスには、仮想4GBのアドレス可能なメモリが割り当てられます。2GBはカーネルモードで使用するために予約されており、2GBはユーザーモードで使用するために予約されています。MSMQキューマネージャはユーザーモードで動作するため、アドレス指定可能な2GBの仮想アドレス空間を使用できます。各メッセージのデータはRAMに保存され、RAMはシステムのページングファイルまたはメモリマップファイルによってバックアップされます。MSMQは、メモリマップトファイルを使用して、エクスプレスメッセージとリカバリ可能なメッセージの両方を保存します。アドレス可能なメモリは2GBに制限されているため、ディスク上のメッセージは2GBに制限されています。MSMQコードとその内部データ構造で使用されるメモリ、およびメッセージファイルをディスクに保存するためのファイル割り当てを考慮すると、ディスクに保存できるメッセージは1.4GBから1.6GBになります。
注この1.6GBの制限は、MSMQサービスで3GBのチューニングを有効にすることで約2.6GBに引き上げることができます。3GBチューニングを有効にする方法の詳細については、 Q171793を参照してください。
編集:チューニングリンクが壊れているようです。ここを指しているはずだと思います。
MSMQの新しいバージョンに関して、ジョンはブログ投稿でこの問題について説明しています。
メッセージの最大数
これは簡単に解決できません。Insufficient Resourcesの投稿から、各メッセージにはインデックス作成のために75バイトのカーネルメモリが必要であることがわかっています。たとえば、200万のメッセージには約150メガバイトが必要です。したがって、必要なのはRAMを追加することだけのようです。ただし、32ビットと64ビットのメモリアーキテクチャの比較を検討した後、32ビットマシンは最大450 MBのページプールメモリであるため、投資を活用するには、すぐに64ビットプラットフォームに移行する必要があります。取り付けられているRAMの量に関係なく。
ただし、繰り返しになりますが、10億のMSMQメッセージに対応するために必要なページプールメモリを生成するRAMの量を計算しようとしている場合は、設計仕様を真剣に検討する必要があります。