| RSS



Меню

Bookmark and Share


Статистика
Ваш IP: 18.117.254.203
Вы используете: v





Сейчас на сайте:

Тех поддержка ->

Облако тэгов
ОС видио Tor Обратная сторона антенна 4.6 php libc rand() эксплоит Windows Server 2008 FreeBSD Jail Elastix QIP Virtual chroot Limit kernel proc sysctl Tune freeBSD bridge Boot LiveCD Disk Bluetooth GEO game DirectX emulator Python Shell червь Conficker вирус троян лаборатория касперского пиратство Apple iPhone Microsoft twitter социальная сеть анонимность лицензия Open Source уязвимость MySQL база данных Закон Франция Пират Skype мобильный Deutsche Telekom хакер trend micro кибератака Германия робот Персональные данные Ноутбук Интернет китай цензура windows vista acer Linux патент браузер Firefox Internet Explorer Opera Safari Intel Oracle патч Банкомат IBM США Dell Ford MAC контроль Internet кибербезопасность приговор Mozilla Chrome безопасность Госдума СМИ Windows 8 взлом Пентагон Украина Facebook Cisco Cloud Windows XP нетбук торрент музыка Биометрический Nokia Hardware Manager ФБР IP-адрес sms RSA java Google Captcha Symantec Спам Антивирус тест Anti-Malware Windows 7 операционная система windows провайдер авторское право rapidshare UNIX свиной грипп шантаж Дети ipod копирайт McAfee HTTPS icann студент Норвегия New York Times YouTube Warner Music КНДР Ubuntu AMD ATI касперский Россия РФ сервер хостинг Wi-Fi суд пароль блог фишинг одноклассники Медведев контрафакт мошенник sony Gps по JavaScript Хакеры Yahoo фас компьютер софт Минкомсвязи Сбой мошенничество Доктор ВЕб Вконтакте ie8 исходный код МВД фильтр порнография свобода слова казахстан Autodesk сисадмин Gmail кредитная карта LiveJournal шифрование Deep Purple банк HTML5 Нанотехнологии wikipedia выборы DNS bind KaZaA Android Basic атака Mac OS X домен ФСБ прокуратура уголовное дело ICQ Sophos Google Voice ошибка DARPA военные сайт турция конференция спамер Полиция Koobface Великобритания IRC белоруссия Грузия Bittorrent Европа Dr.WEB Linux Mint Билл Гейтс спецслужбы Royal Bank of Scotland смартфон Canonical F-Secure Symbian фильм Microsoft Office Новая Зеландия Adobe Австралия IDC Internet Explorer 9 iPad Ирландия поиск GOOGLE EARTH МТС Реклама слежка Mandriva BSD Zeus личные данные eset avast Avira G Data Software защита Defcon виртуализация dll LibreOffice Черный список BlackBerry индия Москва DVD социальные сети flash player paypal BitDefender email сертификат honda MasterCard Anonymous технологии IPv6 Ассанж Оптоволокно передача данных арест Fedora Samsung Иск Apache учетная запись iTunes исследование Cert Санкт-Петербург McDonald's SOPA PIPA Bioshock Infinite: Burial at Sea - ico Megaupload CES hotfile отчет приложение Инвестиции платформа DRM DDoS-атака роскомнадзор

Главная » Статьи » Общие Статьи

тонкая настройка производительности серверных версий Windows

Анализируем причину

Любая внештатная ситуация, в том числе и снижение производительности сервера, требует тщательного анализа. Не собрав всей информации, можно нагородить дел. Возьмем такой случай. Контроллер домена (КД) уже не справляется со своими обязанностями - пользователи подолгу регистрируются в системе или не могут зайти в сетевую папку. В зависимости от топологии Сети, вариантов решения может быть несколько.

Например, можно модернизировать железо, перераспределить нагрузку между серверами (в том случае, когда КД выполняет еще и другую задачу) или же снизить нагрузку на основной КД за счет установки еще одного КД в отдельном подразделении компании. При использовании Win2k8 в удаленном офисе есть вариант установить контроллер домена только для чтения (RODC). Тогда в случае компрометации сервера или банальной кражи оборудования можно не бояться за нарушение функционирования всего леса (подробности смотри в статье «В лабиринте AD»). Так мы разгрузим основной КД и снизим нагрузку на Сеть (в том числе и на внешний канал, если для соединения между офисами используется интернет).

Узкие места могут возникать по нескольким причинам:

  • системные ресурсы сервера или сети исчерпали свои возможности - как правило, требуется наращивание или модернизация;
  • отдельные системы или участки сети нагружены неравномерно - требуется перераспределение ресурсов;
  • ресурс используется в монопольном режиме - возможно, потребуется замена программы на аналог, запуск ее только по требованию или в периоды низкой загрузки;
  • неправильная настройка - необходимо изменение параметров.

Теперь разберем некоторые моменты подробнее.

Ищем бутылочное горлышко

Производительность систем и сервисов, то есть время, за которое они выполняют некоторую задачу, зависит от ресурсов процессора и памяти, емкости и производительности дисковых накопителей и пропускной способности сети. Все они имеют свой лимит. При превышении запаса прочности одного из ресурсов производительность начинает резко снижаться, образуя узкое место. Как результат, общая производительность сервера определяется именно этим ресурсом, хотя остальное в норме.

В новой Win2k8 и Win2k3, которая еще долго будет верой и правдой служить на серверах, системы мониторинга несколько отличаются, но не настолько, чтобы не разобраться при смене системы. Диспетчер задач, вызываемый по <Ctrl+Alt+Del> (в Win2k8 нужно будет выбрать в меню еще и Start Task Manager) или <Ctrl+Shift+Esc>, позволяет во вкладке Performance увидеть состояние основных системных ресурсов (CPU, ОЗУ) и Сети (во вкладке Networking). В обеих системах можно оценить вклад отдельного процесса в общую потерю производительности. Если информации недостаточно, добавляем счетчики производительности. Для этого достаточно перейти во вкладку «Processes» и выбрать в меню View - Select Columns, после чего установить флажки напротив нужных пунктов. По умолчанию активировано всего два счетчика: CPU Usage (загрузка ЦП) и Memory - Private Working Set (Memory Usage в Win2k3, Использование памяти). Названия некоторых счетчиков в системах отличаются, но разобраться несложно.

В Win2k3 для наблюдения за производительностью системы в штатную поставку входит «Монитор Производительности» (вызывается через Старт -  Администрирование - Производительность, perfmon.msc), который выводит показания активных счетчиков в виде графиков, диаграмм или таблиц. Ведется история событий, помогающая отследить все изменения. При достижении порогового значения можно, например, отправить сообщение админу - в общем, выполнить действие. Подробности о «Мониторе Производительности» и основных счетчиках смотри в статье «Поставь сервер на счетчик», опубликованной в X_11_2007.

На сайте Microsoft для Win2k3 доступно еще одно эффективное, хотя и малоизвестное средство анализа производительности - Server Performance Advisor V2.0 (SPA). С помощью этой утилиты можно собрать информацию о настройках, данные со счетчиков с одного или нескольких серверов, отслеживать события (Event Tracing). По результатам работы получим удобные для чтения и анализа отчеты о производительности, содержащие предупреждения и рекомендации по устранению неполадок. В SPA имеется более 90 предварительно настроенных групп коллекторов. Причем самые востребованные уже настроены! Например, коллектор System Overview содержит основные системные счетчики: CPU usage, Memory usage, занятые файлы и TCP-клиенты, top-потребители CPU, а также счетчики для основных серверов - контроллеров домена, файловых служб AD, IIS, DNS, Terminal Services, SQL и др.

В Win2k8 контроль за основными параметрами системы возложен на Reliability and Performance Monitor (RPM), который вобрал в себя функции отдельных приложений, доступных в Win2k3. Запустить его можно несколькими способами: из меню Administrative Tools, нажатием клавиши Resource Monitor во вкладке Performance в Task Manager, выбрав пункт в меню Diagnostic в Server Manager или введя в консоли perfmon.exe. В главном окне RPM увидим четыре графика, выводящие информацию о загрузке CPU, Disk, Memory и Network в реальном времени. Чуть ниже расположены таблицы с подробной информацией, разбитой по этим же группам. В каждой показан процесс и связанные с ним данные (PID, объем ОЗУ, загрузка CPU, Response Time дисковых операций, количество переданных и принятых сетевых пакетов и прочее).

Зачастую достаточно одного взгляда на графики и таблицу, чтобы оценить обстановку и принять решение. Но и это еще не все. «Монитор Производительности» находится в меню Performance Monitor. По умолчанию активирован только один счетчик Processor Time, но  достаточно выбрать в контекстном меню Add Counter, как откроется одноименное окно, в котором можно выбрать нужный счетчик. Полный список охватывает все параметры системы и сервисов. Следующее меню, хотя и не связано с оценкой производительности, - тем не менее, очень полезно при поиске неисправностей. Речь идет о Reliability Monitor («Монитор Надежности»). Справа от графика выводится индекс ожидания появления проблемы System Stability Index («Системный Индекс Устойчивости»). График Stability Index помогает быстро найти дату, когда было замечено первое появление проблемы (уменьшился System Stability Index). В поле System Stability Report показаны детали возникшей проблемы.

Два меню Data Collector Sets и Reports выступают в роли удобного аналога SPA. Так, в первом из них содержатся шаблоны коллекторов, которые могут быть использованы с любой программой, предназначенной для сбора данных. Выполнив, например, LAN Diagnostics или System Performance (то есть любой коллектор или группу), в соответствующем подменю в Reports получим полный отчет.

Тюнинг системы

Информация собрана, а значит, пора принимать решение. Чтобы добиться увеличения производительности, можно изменить алгоритм работы буксующей подсистемы, модифицировав соответствующий системный параметр. Признаю, это временная мера, которая не всегда улучшает ситуацию. Но при правильном подходе она позволит серверу продержаться на должном уровне еще несколько месяцев, пока начальство не раскошелится на новое оборудование.

Перед внесением изменений сформулируем для себя несколько правил:

  • одновременно вносим не более одного изменения, даже если узкое место требует настройки нескольких параметров. Так легче будет сделать откат в случае неудачи. Следующее изменение производим, только убедившись, что идем правильным путем. Внесение сразу нескольких настроек делает невозможным определение результата для каждого конкретного параметра;
  • после каждого изменения повторяем наблюдение в течение некоторого времени, достаточного для сбора статистической информации;
  • так как изменения могут повлиять на другие ресурсы, сохраняем подробную информацию об изменениях и результатах наблюдений за производительностью.

Среди советов встречаются такие, как отключение «лишних» сервисов и проверка запланированных заданий, но в Win2k8 изначально запущено только то, что действительно нужно. Поэтому эти советы больше актуальны для ранних версий Windows.

Оптимизация сети

Сетевая подсистема в Win2k3/Win2k8 (как, впрочем, и в любой другой ОС) является многоуровневой. Глубокий тюнинг следует производить на каждом уровне, начиная от драйвера и NDIS (спецификация интерфейса сетевых драйверов) и заканчивая уровнем приложений. Начнем «снизу».

Вызываем свойства адаптера и изучаем активные протоколы. Любой протокол генерирует некоторый трафик, поэтому даже в небольшой сети путешествует гораздо больше пакетов, чем нужно для ее нормального функционирования. Например, адаптеру, который смотрит в интернет, часто ни к чему NetBEUI (да и с точки зрения безопасности, это минус). Поэтому отключаем все лишнее, в том числе и IPv6 (в нашей стране пока необходимости в нем нет). Параллельно включаем снифер и отлавливаем «лишние» пакеты, определяя их источник. Если расположить более быстрый или часто используемый протокол в начале списка, то это позволит увеличить производительность.

Локальные файлы HOSTS (для TCP/IP) и LMHOSTS (NetBEUI), хранящие адреса и имена систем, помогают уменьшить количество запросов на разрешение имен. Эти настройки можно произвести как вручную, так и зайдя в свойства TCP/IP в настройках сетевой карты, и затем выбрав Advanced. Распространять изменения в этих файлах можно в небольших сетях вручную, а в AD - при помощи политик. Присутствие DNS- и WINS-серверов также способно уменьшить количество лишних задержек.

Кстати, новая концепция ролей в Win2k8 приносит свои плоды: в настройках Сети после установки системы ничего лишнего не включено, а новые алгоритмы настройки и оптимизации требуют меньше телодвижений со стороны администратора. Например, автоматическая настройка TCP Receive Window Auto-Tuning динамически изменяет размер принимающего буфера TCP, используемого для хранения входящих данных, тем самым повышая пропускную способность, скажем, при передаче больших файлов на высокоскоростных каналах (поэтому ключ реестра TcpWindowSize в Win2k8 игнорируется). Средство Compound TCP (CTCP) увеличивает количество одновременно отправляемых данных - ну, и так далее. Впрочем, кое-что нам оставили и для ручной настройки.

Нажав кнопку Configure в свойствах адаптера, получаем во вкладке Advanced доступ к ряду настроек (их количество зависит от конкретного адаптера). Например, для файлового и FTP сервера рекомендуется задействовать следующие опции: IPv4, TCP и UDP Checksum offload, Segmentation offload и TCP offload engine (TOE). Поддержка последнего включается следующим образом:

> netsh int tcp set global chimney = enabled

Для веб-сервера и сервера базы данных желательно активировать еще и Receive-side scaling (RSS). Но если сетевой адаптер не справляется с нагрузкой, - наоборот, пробуем по одному отключать все offload настройки. В Link Speed & Duplex указывается режим работы адаптера (по умолчанию он выбирается автоматически), а в Transmit/Receive Buffers - буфер приема и передачи. В целях экономии ресурсов размер буфера по дефолту установлен в минимальное или среднее значение. При больших нагрузках это чревато потерями пакетов. Если адаптер позволяет вручную изменить размер буфера, то увеличиваем, не задумываясь.

Параметр Interrupt Moderation по умолчанию установлен в Adaptive. Проигравшись с настройками, можно попробовать выбрать приемлемый результат между производительностью Сети и нагрузкой на CPU. Если на сервере несколько CPU и сетевых карт, то возможна привязка CPU к сетевому адаптеру. Это положительно скажется на производительности Сети и системы за счет уменьшения количества «лишних» прерываний. Конечно, это не все, что может сделать админ для разгрузки Сети. Например, для настройки драйвера http.sys, который используется IIS, есть целая ветка реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Http\Parameters

Что-то можно сделать и на прикладном уровне. Например, в ISA Server реализована функция сжатия данных, передаваемых по протоколу HTTP. Правда, за меньший трафик придется платить большей нагрузкой на CPU. В медленных сетях пропускная способность повышается на 30%. Также уменьшается задержка при передаче информации, хотя нагрузка на процессор не увеличивается более чем на 20%. Для разгрузки сервера терминалов в Computer Configuration - Administrative Templates - Windows Components - Terminal Services - Terminal Server можно уменьшить глубину цвета и размер рабочего стола, установить сжатие RDP, отключить обои и т.д.

Дисковая подсистема

Часто именно дисковая подсистема служит основной причиной потери производительности. Она ограничена числом физических обращений к диску в секунду (зависит от скорости вращения диска и от того, насколько случайный характер имеют операции обращения). Самым простым методом сокращения частоты обращения к диску будет установка дополнительных дисков или использование RAID.

Кое-что можно сделать и самому. По умолчанию файл подкачки равен 1.5 объема ОЗУ и расположен на системном диске. Последний обычно сильно загружен, к тому же подвержен фрагментации. Поэтому, если имеется несколько дисков, создаем файл подкачки на каждом. Для этого в Control Panel System выбираем Advanced System Setting и получаем знакомое окно System Properties («Свойства системы»). Нажимаем во вкладке Advanced в поле Performance кнопку Setting, снова щелкаем Advanced, а затем кнопку Change. В появившемся окне снимаем флажок «Automatically manage paging file for all driver» и указываем, на каких дисках и разделах следует создать файл подкачки. При этом следует помнить, что использование нескольких разделов одного диска для файла подкачки, мягко говоря, нецелесообразно. Своп лучше размещать на разделах с меньшей буквой, на которых, как правило, скорость повыше.

По умолчанию Windows записывает данные блоками по 64 Кб, но жесткие диски и приложения могут использовать блоки других размеров. Данные в этом случае придется записывать на несколько секторов, что снижает производительность. В состав Win2k8 и Win2k3 SP1 входит программа Diskpart, предназначенная для создания разделов диска. С ее помощью можно задать другое смещение. Пользоваться программой просто. Для запуска в командной строке набираем diskpart.exe. Далее командой «List Disk» выводим список дисков, выбираем нужный диск - «Select Disk 1», создаем раздел «Create Partition Primary Align=64» и присваиваем ему букву («Assign Letter=D»). Помни, что Diskpart уничтожает данные, поэтому предварительно создай резервную копию!

Также стоит отключить индексацию файлов для (якобы) быстрого поиска и компрессию диска (если взведен флажок «Compress this drive to save disk space»). И, конечно же, не забываем о периодической дефрагментации (Свойства диска - Tools - Defragment Now). В подменю Shadow Copies находятся настройки теневых копий. Если резервирование производится другими средствами, то для повышения производительности их можно отключить или изменить алгоритм работы.

Не помешает знать и о некоторых параметрах реестра (они подходят и для Win2k3). Так, параметр NumberOfRequests, зависимый от драйвера сетевой карты, позволяет задать количество запросов, ускоряя работу за счет распараллеливания. Драйвер сам устанавливает оптимальное значение, но рекомендуется установить его в диапазоне от 32 до 96.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MINIPORT_ADAPTER\Parameters\DeviceN\NumberOfRequests (REG_DWORD)

Установка в 0 ключа CountOperations позволит отключить некоторые счетчики, что также повлияет на производительность в лучшую сторону:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Session Manager\I/O System\CountOperations

Установка в 1 (REG_DWORD) ключа DontVerifyRandomDrivers запрещает тестирование и проверку некорректно работающих драйверов:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Session Manager\Memory Management\DontVerifyRandomDrivers

В Win2k8 используется сложный алгоритм, индивидуально управляющий приоритетом I/O. Если для экспериментов ты захочешь его отключить, установи в 0:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceClasses\{Device GUID}\DeviceParameters\Classpnp\IdlePrioritySupported\I/O Priorities

Чтобы запретить обновление даты последнего обращения к файлу, устанавливаем в 1 (REG_DWORD) ключ:

HKLM\System\CurrentControlSet\Control\FileSystem\NtfsDisableLastAccessUpdate

Это только основные параметры. А подробную информацию по настройке дисковой подсистемы можно найти в документе «Disk Subsystem Performance Analysis for Windows» на сайте Microsoft.

Точность хирурга

Повышение производительности сервера - это сугубо индивидуальная операция, которую нужно производить с точностью хирурга, контролируя каждый этап. Но ничего сложного здесь нет! Потратив некоторое время, ты неизменно получишь результат. А какой именно, - зависит только от тебя.

Категория: Общие Статьи | Добавил: aka_kludge (02.09.2009)
Просмотров: 1806 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
    Главная      
...
На службе : дней

17:49
Обновить


Пользователи
aka_kludge
qwerty
LeadyTOR
aka_Atlantis
AdHErENt
mAss
Sissutr
hiss
DrBio
tHick

Поиск


Copyright tHR - TeAM 2025 г. admin: aka_kludge (ICQ:334449009) Moderator's: LeadyTOR, ... Яндекс.Метрика