производительный файловый сервер ЗАРАЗА Спецвыпуск: Хакер, номер #063, стр. 063-034-6 По умолчанию размер системного кеша составляет всего 8 Мб (для Windows NT и Windows 2000 — именно столько, но для Windows 2003 неизвестно, увы, пока нет документации к ней). Установка параметра Maximize data throughput for file sharing реально меняет два ключика реестра. Ключик Size в HKLM\CurrentControlSet\Services\LanmanServer\Parameters устанавливается в значение 3 (Large). Этот ключик оптимизирует различные параметры рабочих очередей и пула потоков LanmanServer на работу с множеством клиентов. Ключик LargeSystemCache в HKLM\CurrentControlSett\Services\SessionManager\Memory Management устанавливается в значение 1 (on). При этом под системный кеш отводится 80% всей незанятой памяти системы, что ощутимо увеличивает производительность выделенного файлового сервера. Регулярно слышу что-нибудь наподобие «А в наших тестах SAMBA под Linux оказалась быстрее, чем Windows 2003». Очень часто слышишь подобное от людей, которые тестировались на сервере с маленьким кешем и использовали один клиент, все сетевые операции на клиенте также кешировали. Одинаковый размер кеша и алгоритм кеширования становятся причиной того, что в кеше клиента и сервера находятся одни и те же данные, то есть все запросы, которые доходят на сервер, пролетают мимо кеша. Конечно же, в результате сервер работает достаточно медленно. Windows 2003 проявит себя по полной, если правильно подобрано оборудование, произведены соответствующие настройки и использовано достаточное количество клиентов оптимизация и разгон файлового сервера Реальная оптимизация файлового сервера происходит на уровне оборудования. Тот «разгон», о котором пойдет речь, даст выигрыш более 10% только на плохо сбалансированном оборудовании. Устранение узкого места в оборудовании (например замена процессора) даст гораздо более высокие результаты. Работа файлового сервера достаточно проста, поэтому мы можем лишь сократить какие-либо «начальные» задержки: время, уходящее на открытие-закрытие файла, на простой запроса в очереди и т.д. Все остальное — исключительно вопрос оборудования. Из-за особенностей работы кеша и обработки очереди запросов файловый сервер не будет показывать чудеса производительности, если на нем крутятся какие-либо приложения, интенсивно использующие память (особенно с постоянным выделением и освобождением) или неравномерно загружающие процессор. Не стоит давать файловому серверу какие-либо дополнительные роли в сети, кроме, может быть, роли контроллера домена и сервера Active Directory, если количество пользователей небольшое (порядка нескольких десятков) оптимизация работы с оборудованием Microsoft рекомендует организовывать работу так, чтобы в многопроцессорных системах (реально многопроцессорных — я не говорю о технологии гипертридинга) прерывания от одного и того же сетевого адаптера обрабатывались одним и тем же процессором. По умолчанию прерывание может быть обработано любым процессором. Можно использовать IntFiltr (ftp://ftp.microsoft.com/bussys/winnt/winnt-public/tools/affinity) для привязки прерываний определенного устройства к одному процессору |