Вот статья на MSDN, которая, кажется, решает ваш вопрос (как Джон указывает ниже, это относится только к Windows Server 2000, поэтому, вероятно, должно игнорироваться большинством людей): Управление ресурсами в приложениях MSMQ, В частности:
Для MSMQ 1.0 и MSMQ 2.0 объединенный размер сообщений, которые можно хранить на одной машине, не ограничивается объемом оперативной памяти на машине или размером жесткого диска, а объемом предоставленного виртуального адресного пространства. в службу MSMQ операционной системой (это ограничение было снято в MSMQ 3.0). Каждому процессу на компьютере x86 выделяется виртуальная 4 ГБ адресуемой памяти. 2 ГБ зарезервированы для использования в режиме ядра и 2 ГБ для режима пользователя. MSMQ Queue Manager работает в пользовательском режиме и, следовательно, имеет адресуемые 2 ГБ виртуального адресного пространства для работы. Данные каждого сообщения хранятся в ОЗУ, которое резервируется файлом подкачки системы или файлами отображения памяти. MSMQ использует файлы отображения памяти для хранения как экспресс-, так и восстановимых сообщений. Поскольку мы ограничены 2 ГБ адресуемой памяти, мы ограничены объемом 2 ГБ сообщений на диске. Если принять во внимание объем памяти, используемой кодом MSMQ и его внутренними структурами данных, а также распределение файлов для хранения файлов сообщений на диске, мы получаем от 1,4 до 1,6 ГБ сообщений, которые можно хранить на диске.
Примечание. Это ограничение в 1,6 ГБ может быть увеличено до приблизительно 2,6 ГБ путем включения настройки 3 ГБ в службе MSMQ. См. Q171793 для получения дополнительной информации о том, как включить настройку 3 ГБ.
Редактировать: ссылка на настройку, кажется, не работает. Я считаю, что это должно указывать здесь .
Что касается более поздних версий MSMQ, Джон обсуждает эту проблему в сообщении в блоге .
Максимальное количество сообщений
С этим не так просто разобраться. Из моего поста «Недостаточно ресурсов» мы знаем, что для каждого сообщения требуется 75 байтов памяти ядра для индексации, поэтому, например, для 2 миллионов сообщений потребуется примерно 150 мегабайт. Казалось бы, поэтому, что все, что вам нужно сделать, это добавить больше оперативной памяти. Однако, после сравнения 32-разрядных и 64-разрядных архитектур памяти вам придется быстро перейти на 64-разрядную платформу, чтобы воспользоваться вашими инвестициями, так как 32-разрядные машины максимально используют 450 МБ памяти выгружаемого пула. независимо от количества установленной оперативной памяти.
Но, опять же, если вы пытаетесь определить, какой объем ОЗУ будет генерировать память выгружаемого пула, необходимую для размещения миллиарда сообщений MSMQ, ваша проектная спецификация заслуживает серьезного рассмотрения.