Позвольте мне ответить на этот вопрос, начав с небольшого исторического отступления. Во времена 8-,16-и 32-разрядных операционных систем мы пользовались виртуальной памятью как средством поддержки адресного пространства, большего, чем физическое. 32-разрядное адресное пространство позволяет задействовать не более 4 Гбайт адресуемой оперативной памяти. Этого было достаточно в 1985 году, когда компания Intel представила 32-разрядный процессор 80386. Теперь этого мало; даже недорогие цифровые устройства из категорий «Самая выгодная покупка» и «Офисный компьютер» поддерживают 4 Гбайт оперативной памяти, а новейшие серверы и подавно намного больше.
Сколько же оперативной памяти Exchange Server может эффективно использовать?
Давайте начнем с рекомендаций Microsoft, опубликованных на TechNet в статье «Understanding Memory Configurations and Exchange Performance» (http://technet.microsoft.com/en-us/library/dd346700.aspx). Эти рекомендации можно резюмировать следующим образом.
- По 1 Гбайт на каждое ядро процессора для серверов с ролями пограничного транспортного сервера и центрального транспортного сервера.
- По 2 Гбайт на ядро для системы унифицированных коммуникаций и серверов клиентского доступа.
- Для серверов почтовых ящиков 4 Гбайт плюс от 3 до 30 Мбайт на каждый ящик (иногда от 7 до 34 Гбайт для серверов с поддержкой более 1000 ящиков).
- По 2 Гбайт на ядро для серверов, которые совмещают роли центрального транспортного сервера с серверами клиентского доступа.
- Для серверов, совмещающих роли сервера почтовых ящиков с другими ролями, минимум 8 Гбайт (4 Гбайт плюс 3–30 Мбайт на каждый почтовый ящик).
Эти рекомендации кажутся довольно простыми, если не брать в расчет, что указаны они для каждого почтового ящика. Специалисты Microsoft это объясняют более подробно в статье TechNet «Understanding the Mailbox Database Cache» (http://technet.microsoft.com/en-us/library/ee832793.aspx). 30 Мбайт для каждого почтового ящика — это рекомендация для серверов почтовых ящиков, трафик которых составляет порядка 500 сообщений в день. Теперь давайте предположим, что среднестатистический пользователь принимает и получает около 250 сообщений в день. В этом случае Microsoft рекомендует 12 Мбайт на почтовый ящик под кэш плюс 4 Гбайт, так что в итоге для 2000 ящиков нам необходимо 28 Гбайт оперативной памяти. Это и так как будто много, имеет ли смысл ставить на сервер 32 или 48 Гбайт?
На первый взгляд кажется, что нет. Хотя движок хранилища ESE использует больше памяти, если доступно, результаты тестирования Microsoft показывают, что производительность не возрастает при добавлении большего объема памяти, чем рекомендовано для вашего уровня загрузки. Учитывая, что оперативная память достаточно дешевая, увеличение ее объема не повредит производительности системы, но и не увеличит ее.
С другой стороны, установив более чем достаточный объем оперативной памяти, вы получаете возможность виртуализации Exchange, что позволяет более эффективно использовать имеющиеся аппаратные ресурсы. Рассмотрим 12-ядерный сервер с 72 Гбайт оперативной памяти, это довольно хороший сервер по современным меркам, и он не самый мощный. Этот сервер окажется мощнее, чем вам нужно для 2000 ящиков, поэтому правильнее запустить две виртуальные машины с четырьмя ядрами и 32 Гбайт оперативной памяти. Такая архитектура предполагает, что вам необходимо работать с более чем 2000 ящиков. При меньших размерах почтовой системы добавление оперативной памяти будет бесполезным, поэтому лучше использовать бюджет в других направлениях развития вашей почтовой системы.
Что касается ядер процессора, то это другая тема. Бытует мнение, что ядер много не бывает, но это не касается Exchange, а почему — я объясню в одной из следующих статей.
Поль Робишо (getting-started@robichaux.net) — старший системный архитектор компании EntireNet, имеет сертификаты MCSE и MCT