Логика проста: при небольшом дополнительном расходе вы получаете большее количество продукта. А теперь представьте такой, например, диалог с продавцом в компьютерном магазине.
Покупатель: «Мне нужна двухпроцессорная система на Pentium III Xeon, с 512 Мбайт RAM и жестким диском 9 Гбайт».
Продавец: «Не хотите ли приобрести нашу специальную суперстанцию? Доплатив всего 15 долларов, вы получаете массив RAID 5 из трех жестких дисков по 18 Гбайт и бесплатную копию Quake III».
При продаже систем Microsoft Exchange Server работал этот же принцип. Один ресурс не может максимально повысить эффективность Exchange Server, так как невозможно изолировать его воздействие от остальных факторов, влияющих на производительность. Многие полагают, что эффективность работы компьютера зависит только от быстродействия процессора. Раньше, когда наиболее мощным считался четырехмегагерцевый процессор 8086, это убеждение могло быть и верным. Но сейчас эффективность, как правило, зависит от четырех ресурсов - процессора, памяти, дисковой подсистемы, сети, а также от того, как прикладные программы используют данные ресурсы. Оценив влияние этих факторов на производительность, можно научиться максимально эффективно использовать систему.
Когда ресурс ограничивает производительность прикладной программы, принято говорить, что прикладная программа «зависима» (например, зависима от CPU или от сети). Какой ресурс ограничивает производительность Exchange Server? Это связано с тем, какие функции сервер выполняет. Сетевое быстродействие могло бы ограничивать доступ к общим папкам, в то время как процессор или дисковая система могли бы ограничить обращение к почтовым ящикам. Подобно тому, как для организма человека важно сбалансированное питание, для сервера важна сбалансированная производительность.
Процессор
Процессор - наиболее очевидный кандидат в список факторов, влияющих на производительность. Каждая команда должна пройти процессор, да и большинство других компонентов системы существует затем, чтобы получать данные от процессора или передавать их ему. Быстродействие процессора играет большую роль в общей эффективности работы системы. При прочих равных условиях можно ожидать, что 900-мегагерцевый процессор будет в полтора раза быстрее, чем процессор 600 MГц. Но быстродействие - не единственный параметр процессора. На работу Windows 2000, Windows NT и Exchange Server влияет и быстродействие процессора, и количество процессоров в компьютере, и размер кэша.
От числа используемых процессоров во многом зависит эффективность всей системы. Два процессора 450 MГц Pentium II могут выполнять работу лучше, чем один 800-мегагерцевый процессор Pentium III. Почему? Дело в том, что Windows 2000, NT и Exchange Server - многопотоковые системы. Это означает, что множество задач может выполняться одновременно внутри одного процесса. Большее количество процессоров выполняет больше задач в единицу времени. Так, я обнаружил, что моя двухпроцессорная система с Pentium 90 MГц и NT Workstation 3.51 транслирует программы по меньшей мере вдвое быстрее, чем аналогичная машина с одним процессором. Теперь я предпочитаю машины с многопроцессорной архитектурой.
Размер кэша в процессоре также важен. Если вспомнить системы Pentium Pro, одна из причин их популярности заключалась в том, что большой внутренний кэш позволял NT и Exchange Server работать эффективнее, чем на более быстрых процессорах с меньшим кэшем. Это объясняет и различия в стоимости обычных процессоров семейства Pentium и их Xeon-дубликатов. Системы Xeon имеют намного больший по размеру внутренний кэш, чем стандартные Pentium, и это влияет как на производительность, так и на стоимость.
Чтобы измерить загрузку процессора, можно использовать счетчик % Total Processor Time из объекта CPU в мониторе производительности NT. Аналогично можно контролировать отдельные процессоры, если возникнет такая необходимость. Я считаю, что уровень использования процессора сервера выше среднего при загрузке 75% или когда длина очереди процессора больше, чем число установленных процессоров. Чтобы изолировать пики, можно экспортировать данные Performance Monitor в Microsoft Excel и анализировать полученные данные. Это позволяет контролировать данные с 30-секундными интервалами и получать общее представление.
Память
У летчиков есть шутка: «Топлива в самолете не бывает слишком много, если только он не горит». То же самое можно сказать о RAM (исключая пожароопасность). Для кэширования страниц из общей и частной баз данных Exchange Server использует всю имеющуюся в системе RAM. И если другие прикладные программы на сервере запрашивают много RAM (это измеряется количеством страниц памяти, передаваемых в секунду), то Exchange Server уступает немного из своих «запасов».
Если сервер имеет физической RAM меньше, чем требуется, то Windows 2000 или NT может использовать виртуальную память, которая размещается на части дискового пространства (pagefile) для увеличения общего объема памяти. Подкачивая страницы из страничного файла, система может эмулировать большее количество RAM, а это, в свою очередь, отражается на эффективности. Счетчик Pages/sec из объекта Memory в Performance Monitor показывает, как происходит обмен данными с файлом подкачки страниц. Кроме того, можно задействовать Task Manager, чтобы узнать, сколько физической и виртуальной памяти использует сервер. Если сервер производит обмен страницами с частотой свыше 8-10 страниц в секунду, то следует добавить RAM.
Дисковая подсистема
Большинство проблем производительности Exchange Server связано с вводом/выводом. Количество и тип дисков и контроллеров может существенно влиять на общую производительность Exchange Server. Это связано с тем, что Exchange Server использует два типа операций ввода/вывода. Файлы регистрации транзакций применяют последовательный ввод/вывод, т. е. процесс хранения всегда дописывает новые данные в конец журнала. Базы данных IS обычно используют произвольный доступ, при котором Exchange Server записывает или читает данные (частями по 4 Кбайт) из любого места файла базы данных. Смешивание последовательных и произвольных операций ввода/вывода ухудшает производительность. Я настоятельно рекомендую разместить файлы регистрации и базы данных IS на разных физических дисках, с системой RAID или без нее.
Имеет значение и общее количество операций ввода/вывода. Любой диск может обеспечить некоторое число запросов ввода/вывода в секунду. В простейшей типичной конфигурации Exchange Server, ОС, файл подкачки, файлы регистрации транзакций и базы данных хранилища должны совместно использовать один диск. Если диск поддерживает 15 операций ввода/вывода в секунду и операционная система вместе со страничным файлом используют 10 из них, то на долю Exchange Server приходится пять операций в секунду. Если добавить второй диск с аналогичными параметрами, то для Exchange Server можно получить 20 операций в секунду, а это четырехкратное увеличение. Большее количество дисков дает лучшую производительность.
Как обстоят дела с RAID? Ошибка при выборе типа RAID фактически может привести к снижению производительности, так как дисковые массивы по-разному влияют на операции ввода/вывода. Например, при зеркалировании (т. е. RAID 1) не обеспечивается увеличение производительности чтения или записи данных, а применение чередующихся дисков (т. е. RAID 0) увеличивает скорость выполнения операций записи данных. Несмотря на это, правильный выбор типа RAID может обеспечить рост производительности, потому что контроллер RAID будет выполнять большую часть работы. Кроме того, RAID увеличивает надежность системы хранения данных. RAID 0 дает более высокую производительность при чтении и записи, но не обеспечивает дополнительную защиту данных. RAID 5 позволяет достичь той же самой производительности чтения, что и RAID 1, а также добавляет избыточность данных. Однако при этом растут накладные расходы при значительных нагрузках с использованием записи. Следует выбрать ту конфигурацию, которая больше соответствует потребностям и бюджету.
В Performance Monitor имеется множество счетчиков производительности диска. Счетчик Disk Queue Length (объект Logical Disk) весьма полезен. То же можно сказать и о счетчиках, которые контролируют количество операций чтения и записи в секунду и число секунд, необходимых в среднем для операции чтения или записи (эти счетчики следует запускать вручную с помощью команд diskperf -y или diskperf -e).
Сеть
Производительность Exchange Server редко зависит от сети, но возможно и это. На сильно загруженных серверах обращает на себя внимание очень высокий уровень использования сетевых ресурсов. Часто пользователи сетуют на плохую производительность сети, даже если проблема в разрешении имен, неподходящем порядке протоколов или медленном коммутируемом соединении. Система Exchange Server может генерировать большой трафик (особенно если используется множество репликаций общих папок) в многосерверных узлах и многоузловых организациях, но доступность диска, памяти и процессора сильнее всего влияет на производительность сервера.
Исходные данные
Как узнать, что пора модернизировать сервер? Жестких правил нет: скорость выполнения тех или иных операций может одному пользователю показаться медленной, другому - вполне приемлемой. Лучше всего определить необходимость модернизации с помощью Performance Monitor. Ключевыми для исходных значений являются данные, которые показывают, где производительность в порядке, а где оставляет желать лучшего. Выбор правильных счетчиков производительности для каждой категории ресурсов даст полное представление о производительности сервера. Сравнивая текущие показания с исходными данными, можно объективно оценить, замедляется ли работа сервера, и если да, то чем это вызвано. Следует убедиться, что исходные данные взяты в моменты средних и пиковых нагрузок. Это позволит получить более точную картину.
Выбор конфигурации
Что нанесет самый сильный удар по бюджету, если принято решение провести модернизацию сервера? Сделать правильный выбор при покупке нового сервера или совершенствовании старого помогут следующие рекомендации.
- Если нет уверенности в том, что Windows 2000 или Exchange Server 2000 не будет использоваться никогда, советую обратить внимание на сервер, который сможет поддерживать 512 Мбайт RAM, два процессора и пять дисков 3.5?. Не обязательно сразу заполнять данный сервер по максимуму, но впоследствии для улучшения производительности Exchange Server или ОС такая необходимость может возникнуть.
- Два более медленных процессора будут работать быстрее, чем один быстрый. При этом можно будет еще и сэкономить, так как самые производительные процессоры, как правило, очень дорого стоят.
- Лучше купить несколько устройств ввода/вывода. Можно приобрести устройства ввода/вывода с большим быстродействием. В моей конфигурации используется зеркальная (т. е. RAID 1) пара дисков для ОС и файла подкачки, вторая пара RAID 1 для файлов регистрации транзакций и массив RAID 5 для базы данных IS. Если бюджет не позволяет собрать такую конфигурацию, можно использовать три диска SCSI (при подключении нескольких дисков к одному каналу IDE происходит потеря производительности). Чем больше дисков в массиве RAID 5, тем больше параллельных операций ввода/вывода в секунду будет выполняться. К примеру, Пьер Бижу, ведущий проектировщик в Compaq Applied Microsoft Technologies Group, считает, что активность пользователей при работе с IS определяется интервалом от 0,1 до 0,15 операций ввода/вывода в секунду и плюс еще 0,02 операций ввода/вывода в секунду для работы с журналами регистрации транзакций. Для сервера с 500 пользователями показатели активности могут увеличиться в 10-15 раз, если разместить на нем еще 1000 пользователей. Поэтому следует заранее учитывать дисковые возможности системы. Выбор дискового контроллера также очень важен: хороший контроллер, поддерживающий кэширование с обратной записью, может увеличить дисковую производительность на 50%.
- Если память дешевеет, советую запасаться, особенно если на сервере работает Exchange Server или Mac OS.
Не стоит пугаться обилия факторов, влияющих на производительность Exchange Server. Это тот самый случай, когда, досконально изучив предмет, в награду можно получить лучшие результаты работы всей системы.
ОБ АВТОРЕ
Поль Робишо - старший системный архитектор компании EntireNet, имеет сертификаты MCSE и MCT. Автор нескольких книг, включая «Managing Microsoft Exchange Server» (издательство O?Reilly). Поддерживает Web-сайт www.exchangefaq.org. С ним можно связаться по адресу: getting-started@robichaux.net.