У нас есть виртуальный сервер Windows 2003 Server объемом 4 ГБ, на котором запущены Exchange 2007 и SQL 2005. Хотя я не являюсь специалистом по этим системам, я знаю, что Exchange использует память иначе, чем другие приложения. Что-то вроде этого будет использовать столько памяти, сколько может, но вернет ее, если другое приложение попросит об этом. Я не уверен, работает ли SQL Server таким же образом.
В последнее время сервер работал немного медленно, хотя перезагрузка, похоже, повысила производительность. Пока мы диагностировали это, мы заметили, что сервер использует разумный объем виртуальной памяти в файле подкачки:
http://www.picpaste.com/appserver.PNG
Это повод для беспокойства или это нормально для сервера Exchange? Обратите внимание, что он использует примерно половину доступной виртуальной машины.
В системе установлено 4 ГБ физической памяти и 5 ГБ виртуальной памяти. Я не уверен, как мы пришли к такой нестандартной конфигурации. Мне это кажется немного завышенным. Кажется, я помню размер x2 для файла подкачки, т.е. если 4 ГБ ОЗУ, он должен иметь файл подкачки 2 ГБ, но это может быть основано на старой практике / тусклой памяти. Каков наилучший способ определения размера файла подкачки для такого сервера Exchange / SQL?
Наконец, память (относительно) дешевая. Как вы думаете, этому серверу нужно больше памяти? Exchange поддерживает 100 пользователей, а SQL, вероятно, имеет около 10 одновременных соединений с относительно легким использованием для сервера SQL.
Привет, Роб.
Не уверен, как Exchange использует оперативную память, но SQL Server предполагает, что это единственное приложение на сервере, и зарезервирует всю память, оставляя только часть для ОС. Однажды я нашел страницу MS, которая объясняла, какую долю она оставила для ОС и что еще она учитывала, но в настоящее время я не могу ее найти.
Я бы посоветовал установить ограничение на объем оперативной памяти, которую может использовать SQL Server, поскольку чисто предположил, что я бы начал с 1 ГБ. Затем вы должны отслеживать производительность SQL и Exchange, а также отслеживать использование ОЗУ на сервере, чтобы увидеть, как это повлияет, хорошее или плохое.
Наконец, поскольку это виртуальный сервер, рассматривали ли вы возможность разделения SQL и Exchange на отдельные виртуальные машины, если вы не можете этого сделать, я бы попытался выделить для этой единственной виртуальной дополнительной оперативной памяти. Предполагая, что гостевая ОС может его использовать.
Я немного запутался: это виртуальный или физический сервер?
Если вы используете Windows Server 2003 Standard, вы не можете добавить физическую память. Если это другой выпуск, то см. эту таблицу для максимальных ограничений ОЗУ.
Если 100 пользователей очень активны с большими почтовыми ящиками и большим почтовым трафиком, а база данных SQL большая или имеет сложные структуры данных, то вам, скорее всего, не хватает оперативной памяти. Потребление виртуальной памяти говорит о том, что это так.
Обычная рекомендация сервера для Windows 2003 заключалась в том, чтобы сделать файл подкачки в 1,5 раза больше ОЗУ, если не было нехватки диска и другой вспомогательной информации. Так что 5 ГБ в вашем случае нет ничего необычного. Лучше всего не нуждаться в файле подкачки и иметь размер физической ОЗУ, чтобы справиться с нагрузкой. Однако, если это виртуальный сервер, вам нужно минимизировать использование файла подкачки даже больше, чем на физическом сервере, и вы почти наверняка заметите снижение производительности с этой рабочей нагрузкой. Однако это может быть незаметно для пользователей, например, если Exchange используется в режиме кеширования, а приложения SQL не очень интерактивны.
Один совет - убедитесь, что минимальный и максимальный размеры файла подкачки совпадают, другими словами, файл подкачки не расширяется динамически и не становится фрагментированным. Похоже, в вашем случае, что для этого совета уже немного поздно, хотя вы всегда можете попробовать удалить его, дефрагментировать диск и воссоздать его (сделайте 6 ГБ или 8 ГБ, если позволяет пространство).