Exchange 2010 ограничение памяти
Обновлено: 21.08.2024
Пилоты говорят: «Топлива не бывает слишком много, если только не пожар». Возможен ли переизбыток оперативной памяти, когда речь идет о Microsoft Exchange Sever?
Сколько же оперативной памяти Exchange Server может эффективно использовать?
- По 1 Гбайт на каждое ядро процессора для серверов с ролями пограничного транспортного сервера и центрального транспортного сервера.
- По 2 Гбайт на ядро для системы унифицированных коммуникаций и серверов клиентского доступа.
- Для серверов почтовых ящиков 4 Гбайт плюс от 3 до 30 Мбайт на каждый ящик (иногда от 7 до 34 Гбайт для серверов с поддержкой более 1000 ящиков).
- По 2 Гбайт на ядро для серверов, которые совмещают роли центрального транспортного сервера с серверами клиентского доступа.
- Для серверов, совмещающих роли сервера почтовых ящиков с другими ролями, минимум 8 Гбайт (4 Гбайт плюс 3–30 Мбайт на каждый почтовый ящик).
На первый взгляд кажется, что нет. Хотя движок хранилища ESE использует больше памяти, если доступно, результаты тестирования Microsoft показывают, что производительность не возрастает при добавлении большего объема памяти, чем рекомендовано для вашего уровня загрузки. Учитывая, что оперативная память достаточно дешевая, увеличение ее объема не повредит производительности системы, но и не увеличит ее.
С другой стороны, установив более чем достаточный объем оперативной памяти, вы получаете возможность виртуализации Exchange, что позволяет более эффективно использовать имеющиеся аппаратные ресурсы. Рассмотрим 12-ядерный сервер с 72 Гбайт оперативной памяти, это довольно хороший сервер по современным меркам, и он не самый мощный. Этот сервер окажется мощнее, чем вам нужно для 2000 ящиков, поэтому правильнее запустить две виртуальные машины с четырьмя ядрами и 32 Гбайт оперативной памяти. Такая архитектура предполагает, что вам необходимо работать с более чем 2000 ящиков. При меньших размерах почтовой системы добавление оперативной памяти будет бесполезным, поэтому лучше использовать бюджет в других направлениях развития вашей почтовой системы.
Что касается ядер процессора, то это другая тема. Бытует мнение, что ядер много не бывает, но это не касается Exchange, а почему — я объясню в одной из следующих статей.
По умолчанию, Exchange может потреблять всю оперативную память сервера процессом Microsoft Exchange MDB Store. Эта особенность необходима для его быстрой работы — он помещает все содержимое базы данных в оперативную память. Для более комфортной работы сервера можно ограничить максимальный объем оперативной памяти, которая может заниматься почтовым сервером.
Настройка Active Directory
Exchange хранит свои настройки в Active Directory. Для конфигурирования открываем инструмент «Редактирование ADSI». В открывшемся окне кликаем правой кнопкой по Редактирование ADSI - Подключение к. :
Выбираем в разделе «Точка подключения» в качестве контекста именования Конфигурация:
. и нажимаем ОК. Мы вернемся к первоначальному окну.
Переходим по разделам: Configuration - Services - Microsoft Exchange - <Наш домен> - Administrative Groups - Exchange Administrative Group . - Servers - <Имя сервера> - кликаем правой кнопкой по InformationStore - Свойства:
Кликаем по Фильтр и снимаем галочку с Отображать только атрибуты со значениями:
Находим атрибут msExchESEParamCacheSizeMax и задаем ему значение:
. само значение рассчитывается по формуле:
<объем данных в килобайтах> / 32. Например, чтобы установить ограничение в 8 Гб, задаем значение
Во время работы MS Exchange 2010 SP3 забирает под себя всю доступную оперативную память и если необходимо, отдает ее другим службам и приложениям. Зарезервированная оперативная память выделяется под создание кеша для дисковой подсистемы базы данных Exchange.
Таблица значений размеров кэша базы данных по умолчанию для Exchange 2010 (Exchange 2010 Limiting Database Cache)
Физическая память на сервере (ОЗУ) | Размер кэша базы данных (только Mailbox) | Размер кэша базы данных (с несколькими ролями) |
2GB | 512 MB | Not Supported |
4GB | 1 GB | Not Supported |
8GB | 3.6 GB | 2 GB |
16GB | 10.4 GB | 8 GB |
24GB | 17.6 GB | 14 GB |
32GB | 24.4 GB | 20 GB |
48GB | 39.2 GB | 32 GB |
64GB | 53.6 GB | 44 GB |
96GB | 82.4 GB | 68 GB |
128GB | 112.2 GB | 92 GB |
Иногда случается так что Exchange перестает следовать этой таблице и правилом отдачи оперативной памяти под нужны системы или других приложений. Это приводит с снижению производительности системы, самого Exchange сервера и полному зависанию.
Данную ситуацию можно решить, путем ограничения размера выделяемой оперативной памяти для Exchange. К примеру необходимо ограничить кеш базы данных до 8 Gb, то сперва нужно рассчитать значение для параметра msExchESEparamCacheSizeMax (8 Gb переводим в килобайты = 8 388 608 Kb делим на 32 Kb = 262144)
Имея точное значение для параметра msExchESEparamCacheSizeMax, запускаем оснастку ADSIEdit.msc и подключаемся к контексту Конфигурация:
Переходим в Конфигурация — Configuration — Services — Microsoft Exchange — FIrst Organization — Administrative Groups — Exchange Administrative Group (FYDIBOHF23SPDLT) — Servers — [Имя сервера] — InformationStore.
Правой кнопкой мыши на InformationStore и редактируем параметр msExchESEParamCacheSizeMax. Установите рассчитанное ранее значение (262144).
Перезапускаем сервис Microsoft Exchange Information Store, чтобы изменения вступили в силу.
Теперь MS Exchange 2010 будет резервировать оперативной памяти ровно столько, сколько мы указали ему.
Необходимость дефрагментации почтовых баз в Exchange Server 2010 возникает из-за того, что при удалении информации из базы данных, она автоматически не сжимается (остаются пустые страницы), и соответственно размер файла базы не уменьшается. Например, если из почтовой базы размером 20 Гб перенести ящики пользователей, общим размером 5 Гб, то размер файла останется неизменным 20 ГБ. Однако, освободившиеся 5 Гб «свободного» места в дальнейшем будет использоваться новыми элементами.
Поэтому если вам необходимо уменьшить размер файла почтовой базы в Exchange 2010, удалив незанятые страницы, вы можете воспользоваться одной из следующих методик:
- Создать новую базу данных, перенести вся ящики в нее и удалить старую базу
- Выполнить офлайн дефрагментацию текущей базы
Каждая из указанных методик имеет свои плюсы и минусы. Офлайновая дефрагментация предполагает простой ящиков пользователей, но она является единственным доступным решением при нехватке дискового пространства (вам просто негде создать новую базу данных).
С другой стороны миграция ящиков в новую базу менее рискованная процедура, но помимо необходимости иметь достаточно свободного места для хранения двух почтовых хранилищ , генерирующая большое количество транзакций, также существенно увеличивающих требования к доступному свободному месту, и как результат, процесс переноса пользователей может занять несколько дней.
Следует четко различать процессы офлайн и онлайн (интерактивной) дефрагментации базы Exchange 2010. Интерактивная дефрагментация в Exchange выполняется постоянно при включенной опции Enable background database maintenance (24 x 7 ESE scanning). Эта процедура выполняется в фоновом режиме включает в себя удаление устаревших элементов в хранилище и оптимизацию расположения страниц. Основная задача – освободить неиспользуемое пространство за счет сжатия записей до минимально возможного количества страниц с целью сокращения количества операций ввода/вывода. Отметим, что неиспользуемое пространство не возвращается системе. Офлайн дефрагментация позволяет высвободить это пространство.
Определяем размер свободного места в базе Exchange 2010
Чтобы в Exchange 2010 узнать текущий размер базы данных и количество свободного места в ней (те самые неиспользуемые страницы), в Exchange Management Shell выполните следующую команду:
В данном примере видно, что текущий размер базы WI-DB-01 17 Гб, причем свободного места в ней аж 8.5 Гб. И если вы хотите высвободить это место, размер файла почтовой базы можно уменьшить, выполнив дефрагментацию утилитой ESEUTIL.
Далее я покажу, каким образом можно дефрагментировать файл почтовой базы Exchange 2010 на отдельно стоящем сервере, который не является членом Database Availability Group.
ПРИМЕЧАНИЕ. Если ваш сервер входит в в группу DAG не используйте данную инструкицю!
Подготовка к дефрагментации Exchange 2010
При планировании дефрагментации базы нужно четко понимать, что для выполнения данной работы, необходимо отмонтировать нужную базу, что недоступность почты для всех пользователей, находящиеся в этой базе данных.
Далее необходимо удостовериться, что имеется достаточно свободного места для выполнения дефрагментации. В процессе дефрагментации создается новый файл базы и на диске одновременно хранятся старый и новый файл, кроме того нужно дополнительное место для временных файлов, создаваемых утилитой eseutil.
Поэтому, если вы собираетесь выполнить дефрагментацию почтовой Exchange, необходимо иметь свободное место, равному не менее 110% от текущего размера базы (без учета пустых страниц).
В моем случае это означает, что нам необходимо иметь как минимум 9,6 Гб свободного места на диске:
Если на текущем диске такого количества места нет, необходимо в параметрах eseutil указать альтернативное расположение временных файлов. Это может быть другой диск или сетевой UNC-путь, однако следует учесть, что при использовании UNC пути время дефрагментации может существенно увеличиться из-за пропускной способности и задержек сети.
Также нужно удостовериться, что вы у вас есть актуальная резервная копия дефрагментируемой базы данных, чтобы не было потом мучительно больно…
Использование ESEUtil для дефрагментации базы Exchange
Откройте командную строку Exchange Management Shell и перейдите в каталог с файлом почтовой базы:
Запускаем дефрагментацию с помощью утилиты ESEUtil.
Убедимся, что ее размер уменьшился:
Типы ограничений и их область действия
Существуют следующие виды ограничений размера:
Также есть несколько уровней, на которых могут применяться озвученные выше ограничения:
Приоритет ограничений
Из рисунка можно сделать вывод, что при получении письмо проходит минимум через три соединителя, ровно как и при отправке. Следовательно, необходимо учитывать ограничения, установленные на всех 3-х соединителях. При этом ещё существуют глобальны ограничения организации и ограничения пользователя.
Настройка ограничений
Организация
Настройки организации можно редактировать как через EMC так и через EMS.
В графической консоли управления, параметры транспорта можно найти на уровне Конфигурирования организации –Транспортный сервер-концентратор – Глобальные параметры – Параметры транспорта (рис.4).
Рис.4: Конфигурирование глобальных транспортных параметров организации.
В PowerShell параметры транспорта можно задать командлетомSet-TransportConfig:
1. Получаем текущие значения:
Рис.5: Конфигурирование глобальных транспортных параметров организации через PowerShell.
Соединители
Для редактирования ограничений на соединителях можно открыть Exchange Management Console – Уровень конфигурирования организации либо Уровень серверов –Транспортный сервер-концентратор – Соединитель … (рис.6):
Либо воспользоваться PowerShell:
1. Получаем список коннекторов:
2. Устанавливаем значения ограничений, например:
Set-SendConnector -Identity <имя_коннектора> -MaxMessageSize <значение, например 20Mb>
Сервер
Настройка конкретных серверов производится командлетомSet-TransportServer с параметрами:
Получатель либо отправитель
Рис.7: Редактирование параметров потока почты для почтового ящика пользователя.
В командной консоли они устанавливаются командлетам Set-Mailbox, -MailUser, -MailContact, -DistributionGroup, -DynamicDistributionGroup, -MailPublicFolder с соответсоответствующими параметрами –MaxReceiveSize, -MaxSendSize, - RecipientLimits, -MaxRecipientPerMessage.
Нюансы
X-MS-Exchange-Organization-OriginalSize
Реальный размер вложения
Ограничение числа получателей
Ограничение размера вложений в MS Outlook
Рис.8: Ограничение размера вложений в MS Outlook.
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Preferences
И указать для него значение 0 – для отмены ограничений, либо значение отличное от ноля, в килобайтах (КБ), для установки своих собственных ограничений.
Ограничение в Outlook Web App
Outlook Web App тоже ограничивает размер вложений, по умолчанию это ограничение равно 30 000 КБ. Чтобы изменить эту настройку необходимо открыть файл Web.config, обычно расположенный в c:\Program Files\Microsoft\ExchangeServer\ClientAccess\Owa и найти там строку вида
Далее для параметра maxRequestLength необходимо указать свое значение, в килобайтах (КБ).
Заключение
Профессиональная поддержка ПК, поддержка IT-системы в целом – это то, о чем нужно задуматься уже сегодня. Доверьте это специалистам. Успехов!Попробуйте наши услуги обслуживания и получите третий месяц обслуживания в подарок!
Читайте также: