|
|
>>> Перейти на мобильный размер сайта >>> Учебное пособие Самоучитель системного администратора11.4. Оптимизация настроек компьютераЗачастую на администратора компьютерной сети небольшого предприятия ложится выбор приобретаемых моделей компьютеров. В большинстве случаев покупается типовая на данный момент конфигурация у того поставщика, с которым организацию (администратора) связывают длительные отношения. Часто многие организации не могут позволить себе приобретение компьютерных брендов, поэтому большинство эксплуатируемых у них моделей собрано специалистами региональных предприятий из отдельных блоков. На сбалансированность таких конструкций часто обращается немного внимания, поскольку производительность современных моделей обычно существенно превосходит требования, предъявляемые на индивидуальных рабочих местах, и если производительность компьютера перестает удовлетворять потребности пользователя, то взамен его приобретают более совершенную модель.
Однако во многих случаях причиной неудовлетворительной работы является какое-либо узкое место в конфигурации системы ("бутылочное горлышко", Bottleneck). И "расшивка" его может оказаться экономически существенно более оправданной, чем покупка нового сервера. Кроме того, правильная конфигурация сможет сэкономить существенные средства. Что такое "медленно"Удовлетворенность производительностью системы — субъективная оценка. Если для пользовательского интерфейса время реакции не должно составлять более 0,6 сек (например, после щелчка мышью по команде диалоговое окно с параметрами должно появиться за указанный промежуток), то длительность обработки данных зависит от многих параметров: объема данных, сложности вычислений и т. п. Так, в зависимости от условий вычисление может считаться быстрым, если оно завершится за 5 минут, а другое — если быстрее чем за 8 часов. Например, для квартального закрытия склада можно выделить всю ночь, но для открытия типовых форм кадрового учета не должно затрачиваться более нескольких секунд. Поэтому медленной можно назвать такое функционирование информационной системы, которое не обеспечивает разумную комфортность работы пользователей. Основные узкие места системы
Существенное влияние на производительность оказывает качество драйверов. При возможности, перед проведением оптимизации следует установить в систему последние имеющиеся версии. Узким местом производительности информационной системы обычно становится один из следующих компонентов:
В идеальном случае каждый компонент не должен "простаивать", но и не сдерживать работу других частей. Для того чтобы проанализировать показатели использования того или иного компонента системы, используются счетчики производительности. В счетчиках постоянно обновляются показатели. Это обновление можно отключить, но особого смысла такая операция не имеет: на производительность системы счетчики практически не оказывают влияния. В операционных системах на базе ядра Windows NT для отображения состояния счетчиков служит программа Производительность (Performance Monitor). Для *nix-операционных систем можно найти большое количество утилит, но наиболее популярными являются: top (отображает загрузку процессора, использование памяти и данные по наиболее загруженным процессам), iostat (показывает загрузку процессора и параметры использования дисков), nmon (отображает основные параметры нагрузки и позволяет записывать их с заданной периодичностью в файл с последующей обработкой и формированием отчетов) и др. Число счетчиков непостоянно и может меняться в зависимости от установленного программного обеспечения и подключенного оборудования. Хотя суммарное число доступных для наблюдения и анализа показателей весьма велико (для Windows-системы составляет несколько сотен параметров), но для качественной оценки информационной системы достаточно перечисленных далее. Полный спектр параметров доступен для анализа только квалифицированным специалистам в целях тонкой настройки приложений. Администраторы сейчас могут найти не одну программу, которая соберет данные производительности системы и сформирует общие рекомендации. Например, Server Performance Advisor от Microsoft (бесплатное ПО) позволяет в течение нескольких минут составить отчет по параметрам системы и представить его руководителю. Но, на взгляд автора, системный администратор должен владеть основами оценки параметров системы. В табл. 11.2 приведены значения параметров производительности, по которым можно судить о состоянии системы. Таблица 11.2.
Оценка производительности процессора
Поскольку современные компьютеры имеют возможность снижать скорость своей работы (например, в случае перегрева процессора), предварительно убедитесь, что высокая загрузка процессора не связана со снижением его тактовой частоты. Для этой цели можно использовать показания программ, контролирующих состояние датчиков системы. В современные серверы, как правило, устанавливают не по одному многоядерному процессору. И в условиях "среднего" предприятия увидеть загрузку процессоров компьютера, близкую к 100%, маловероятно. При этом именно процессор может быть узким местом. Связано это с тем, что показатель производительности подсчитывается усредненно по всем процессорам, а многие расчеты в приложениях не могут быть распараллелены: сначала нужно вычислить одну величину, потом она будет использована в других расчетах и т. д. Поэтому если какой-либо прикладной процесс (например, процесс сервера базы данных) выполняется в одну нить, то соответствующая загрузка процессора будет показываться как 100%/(число процессоров) и распределится (в программе Производительность) между всеми ядрами/процессорами. Поэтому более информативным будет анализ непроизводительных расходов процессора. В случае Windows-систем это будет счетчик Processor\% Privileged Time, для Linux-компьютеров нужно оценивать время, затрачиваемое процессором на системные операции и ожидание готовности других устройств. На рис. 11.16 приведен листинг утилиты iostat. В строке avg-cpu показаны характеристики загрузки процессора: параметр %system отображает загрузку системными операциями, %iowait — время, затрачиваемое на ожидание завершения операций ввода-вывода на диски.
Рис. 11.16. Если процент времени, затраченного процессором на служебные цели, составляет 5% и более (примерно), то необходимо принять меры к минимизации этой нагрузки. Возможными причинами могут быть избыточное количество одновременно запущенных программ (время тратится на переключение между процессами), проблемы с оборудованием (увеличенное число прерываний от устройств) и т. д. Заменить процессор в реальной системе маловероятно. Хорошо, если анализируемая система является виртуальной машиной. В этом случае можно добавить еще один виртуальный процессор. Для физических же серверов практически единственным способом разрешения проблем излишней нагрузки на процессор является уменьшение числа решаемых задач. System\Processor Queue Length (all instances).
Когда процессор не успевает выполнять задания от различных процессов, то эти задания становятся в очередь, процент полезного использования процессора снижается (основное время тратится на переключения между заданиями), а система крайне медленно реагирует на команды. Большая длина очереди может быть обусловлена не только большим количеством одновременно выполняющихся заданий, но и неисправностью какого-либо устройства, например, сетевого адаптера, генерирующего большое количество прерываний в единицу времени. Для локализации этой причины следует провести анализ параметра Processor\Interrupts/sec (см. далее).
Поскольку высокое значение данного счетчика может быть следствием неисправности оборудования, следует выяснить, что является источником повышенного количества запросов в единицу времени. Для этого можно задействовать счетчики объекта Thread, например %Processor Time. Эти счетчики отображают в том числе состояние каждого потока, который запускается отдельным процессом. Переключив отображение монитора системы на гистограмму, вы можете увидеть процесс, который монополизирует ресурсы компьютера.
Бездействие компьютера также относится к процессу. Поэтому для удобства не следует включать отображение этого параметра на графике. Оценка использования оперативной памятиУстановка дополнительной памяти является часто самым простым способом повышения быстродействия системы. Поэтому важно уметь оценить, действительно ли компьютер нуждается в таком обновлении. Объем свободной памяти.
Более продуктивным является анализ показателей, отображающих использование файла подкачки. Memory\Pages/sec.
Совет Обратите внимание, что на некоторых материнских платах частота, на которой работает оперативная память, зависит от конфигурации устанавливаемых модулей. В этом случае добавление новых модулей памяти может привести к снижению скорости работы с ней. Поэтому при необходимости добавления новых модулей надо предварительно изучить рекомендации вендора по оптимальной конфигурации оперативной памяти системы. Оценка дисковой подсистемыДисковая подсистема может существенно снижать производительность компьютера, поскольку она является самым медленным компонентом. Интегральным показателем оптимальности используемой дисковой подсистемы является длина очереди заданий. LogicalDisk (PhysicalDisk)\Avg. Disk Queue Length.
% Disk Time.
Определение источника дисковой активности.
Определить наиболее активные процессы и узнать, в какие файлы пишутся (читаются) данные, поможет программа Монитор ресурсов. Администратор может отсортировать процессы по желаемому типу активности, отфильтровать информацию и т. д. (рис. 11.17).
Рис. 11.17. Для Linux-систем аналогичной функциональностью обладает, например, утилита iotop, позволяющая вывести на экран названия процессов с наибольшей дисковой активностью и отобразить соответствующие файлы
Программа Монитор ресурсов доступна только для ОС Windows Vista/Windows 7/2008. Определить причины дисковой активности в предыдущих версиях (например, в Windows XP/2003) значительно труднее. Можно порекомендовать воспользоваться в этом случае утилитами от Sysinternals (FileMonitor, ProcessMonitor) или другими аналогичными средствами. Показатели производительности дисков.
Существует несколько утилит, предназначенных для проверки параметров скорости работы устройств хранения, но наиболее известным и практически профессиональным инструментом является lometer (http://sourceforge.net/projects/iometer/ files/) — пакет, первоначально разработанный Intel и впоследствии переданный сообществу open-source. Программа позволяет получить реальные параметры работы устройств хранения, однако для получения результата необходимо сначала внимательно ознакомиться с документацией (на что часто не хватает желания у системных администраторов). Причина в том, что в настройках программы необходимо указать большое количество параметров, влияющих на оценку производительности. Например, размер блоков хранения, процент операций записи-чтения и т. д. Причем эти значения будут различны для отличающихся вариантов использования дисков: одни значения необходимо указать для проверки дисков, предназначенных для работы с базами данных, другие — для файловых серверов и т. п. Для упрощения можно использовать вариант параметров, изначально разработанный Intel, который можно загрузить со страницы http://docs.aboutnetapp.ru/iometer2.icf. Скопированный с этой страницы текст нужно сохранить в файле и импортировать эти настройки в конфигурацию программы.
Комплект поставки включает два файла. Dinamo используется для управления тестированием на нескольких устройствах, iometer — файл, который следует запустить для проверки. После запуска следует импортировать файл конфигурации, как описано ранее, не забыть ограничить размер файла, который создается для тестирования в корне диска (заменить значение Maximum Disk Size на допустимое число секторов1 в файле теста, иначе файл будет создан на всем свободном пространстве диска) и выбрать на вкладке Access Specifications необходимые тесты. По умолчанию в программе создается такое число процессов тестирования (worker), которое соответствует числу процессоров в системе. Но их количество можно изменить, как и сменить количество одновременных потоков ввода-вывода (# of Outstanding IO). Простые приложения обычно используют 1—4 потока ввода-вывода, приложения уровня предприятия, например Oracle, могут создавать и до 256 потоков. Из других параметров, которые можно настроить, отметим Ramp Up Time (время на разогрев диска перед началом теста) и Run Time — максимальное время тестирования (если вы хотите завершить тестирование по истечении заданного периода времени). После запуска теста на вкладке Results Display можно наблюдать за получаемыми значениями (следует только назначить моменты обновления данных — рис. 11.18). Обратите внимание, что набор отображаемых на диаграмме параметров допускает изменения по желанию оператора. Итоговые значения тестирования будут сохранены в csv-файле, который можно будет впоследствии проанализировать.
Рис. 11.18. Пути оптимизации дисковой подсистемыКакие могут быть варианты решения проблемы при обнаружении узкого места в дисковой подсистеме? Самый эффективный путь — добавление жестких дисков в соответствующий RAID-массив, на базе которого создан логический диск. Чем больше жестких дисков объединены в логический, тем более производительным он будет. Во-вторых, если позволяет устройство хранения, выберите оптимальные для используемого типа данных варианты RAID-массивов. Не забывайте, что самый популярный тип массива — RAID5 — не является самым быстрым. Проанализируйте дисковую активность и отключите необязательные задачи, ведущие запись информации на диск (например, откажитесь от излишнего протоколирования, перенесите фоновые операции дефрагментирования на периоды минимальной активности и т. п.). Убедитесь, что в системе установлено достаточно оперативной памяти. Увеличьте ее при нехватке. Обратите внимание, чтобы на дисках было достаточно свободного места (не менее 20% их объема). Проведите дефрагментацию дисков, уменьшите или исключите использование сжатия и шифрования файлов на тех дисках, на которых выявлена проблема низкой производительности. Для NTFS-дисков можно отключить запись имен файлов в формате 8.3 и запись времени последнего доступа к файлу (для чего в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Filesystem надо установить в значение 1 параметры NtfsDisable8dot3NameCreation и NtfsDisableLastAccess соответственно). Если эти операции не приведут к успеху, следует искать возможность приобрести более быструю дисковую подсистему.
Если позволяют характеристики системы хранения, то можно выполнить точную настройку таких параметров, как размер кластера и т. п. Обычно такие настройки необходимо выполнять до создания логического диска, изменения их можно провести только с уничтожением хранимой информации. Поэтому данные настройки необходимо тщательно планировать на этапе ввода системы хранения в эксплуатацию. Оценка работы сетевого адаптераДля оценки работы сетевого адаптера используется тот же подход, что и для подсистемы ввода-вывода системы хранения: использование полосы пропускания должно быть ниже предела скорости передачи и очереди на отправку пакетов не должно быть. Обычно считается допустимым среднее значение очереди, равное 1. Что касается использования полосы пропускания, то для сети, выполненной по стандарту Ethernet, — а это практически все локальные компьютерные сети,— величина утилизации сети равная 60% уже считается критической; на практике следует внимательно проанализировать работу сети при достижении порога утилизации порядка 30—40%. Администраторы обычно используют для оценки состояния сети различные SNMP- и RMON-мониторы, которые имеют возможность автоматически высылать предупреждения при достижении установленных пороговых значений.
Счетчики отображают объемы передаваемой и принимаемой информации в байтах, тогда как скорость сети указывается в битах (100 Мбит/сек, 1 Гбит/сек и т. д.). Поэтому показания счетчика надо умножить на 8, чтобы сравнивать с максимально возможной скоростью передачи данных. С помощью счетчиков так же можно выяснить, какое приложение генерирует максимальный трафик. Хотя на практике это имеет несущественное значение: обычно администраторам это приложение известно. Пути оптимизации системы передачи данныхУлучшить работу сетевого адаптера крайне сложно. Можно порекомендовать обновить его драйвер. Кроме того, иногда бывает, что параметры подключения, которые по умолчанию выставляются в режим авто, устанавливаются не на максимальную производительность. Например, вместо полного дуплекса будет использован режим полудуплекса или даже установлена более низкая скорость работы. Выяснить такие "отклонения" можно, если посмотреть состояние сетевого порта коммутатора, к которому подключен данный сетевой адаптер. Если состояние порта не оптимальное, то необходимо вручную сменить настройку и зафиксировать ее в требуемом значении. Если настройки оптимальны и большой трафик свойственен нормальным условиям работы системы, то необходимо либо добавить еще один сетевой адаптер, либо перейти на сеть с большей скоростью передачи данных. После установки дополнительного сетевого адаптера данные будут передаваться одновременно по нескольким каналам, в результате чего нагрузка на отдельный канал снизится (примерно пропорционально числу каналов) и будет находиться в приемлемых диапазонах. Такое объединение (агрегирование) сетевых адаптеров на серверной стороне канала передачи реализуется программным обеспечением сетевых адаптеров наиболее известных вендоров (например, ProSet для адаптеров изготовления фирмы Intel). Поэтому лучше всего при установке дополнительного адаптера выбирать модель, идентичную уже установленной в сервере. Соответствующие возможности нужно уточнить по документации.
В случае особой интенсивности сетевого трафика администраторы могут настроить некоторые параметры TCP/IP-протокола через реестр системы (например, размеры передаваемого окна или число пакетов, после приема которых нужно высылать подтверждение получения данных). Как правило, эти параметры автоматически настраиваются системой и устанавливать их вручную имеет смысл только при большом числе сетевых подключений (при массовом обслуживании). Соответствующие настройки следует уточнить по описанию операционной системы. Аналогично, если не хватает полосы пропускания между двумя коммутаторами локальной сети, то следует создать вторую, параллельную линию связи и объединить их (агрегирование каналов средствами коммутационного оборудования). Для регулировки (чтобы минимизировать влияние сетевого трафика одних программ на другие) следует ввести настройки качества обслуживания (установить приоритеты трафика) и ограничения используемой полосы пропускания (так называемый shaping). Некоторые советы по анализу показаний производительностиЧтобы снятие показаний счетчиков меньше сказывалось на загрузке проверяемой системы, лучше всего эту операцию делать удаленно, например, подключая задачу Производительность к удаленному серверу. Если вы хотите, чтобы работа самой программы при отображении данных вносила минимальные искажения в параметры производительности, то запускайте ее с низким приоритетом (start /low для Windows-систем). Для объективной оценки производительности системы необходимо использовать усредненные за некоторый период показания счетчиков. Чем за больший период времени будут сняты показания, тем более объективные выводы оценки производительности системы можно будет выполнить. Например, кратковременная загрузка процессора, близкая к 100%, при выполнении расчета вполне допустима. Но если процессор загружен более 70% в течение длительного периода времени, то этот факт свидетельствует о необходимости расшивки данного узкого места. Как правило, программы мониторинга производительности имеют возможность записи показаний счетчиков в файл в реальном режиме времени. Администратору необходимо только задать периодичность снятия показаний и указать длительность записи. В качестве примера на рис. 11.19 приведен один из графиков отчетов, сформированных программой nmon (бесплатное ПО для мониторинга производительности *тих-систем) реального компьютера. Часто такие отчеты снабжаются указаниями на параметры, значения которых зафиксированы в неоптимальных коридорах.
Рис. 11.19. Кроме того, в период замеров следует выполнять обычные для данного компьютера операции. Например, для рабочей станции это открытие файлов, их печать, чтение электронной почты, работа в программах офиса или выполнение текущих операций в базе данных и т. п. Чем больше такие операции будут соответствовать типовым вариантам использования компьютера, тем точнее получатся рекомендации на основе анализа показаний счетчиков. Оптимизация приложенийПользователь может сказать, что компьютер работает медленно, что ему хотелось бы, чтобы расчеты выполнялись не более чем за некоторый, заранее определенный, промежуток времени. Задача администратора — определить причины недостаточной производительности, понять, какой параметр вносит наибольшее замедление в работу информационной системы, и попытаться устранить проблему. Еще раз отметим, что невозможно добиться ускорения вычислений сразу по всем параметрам. Следует выделить операции, наиболее существенно замедляющие работу, попытаться оптимизировать их и затем повторять эти шаги снова и снова, пока не будет достигнут требуемый эффект. Обязательно следует выбрать типовые операции, зафиксировать время их выполнения до начала оптимизации и контролировать эффект каждого шага. Современные коммерческие приложения обычно имеют много тонких внутренних настроек, позволяющих оптимизировать вычисления под конкретную конфигурацию заказчика. Поэтому, наряду с устранением узких мест аппаратной составляющей (так, как это описано ранее) следует ознакомиться с подобными руководствами по оптимизации и реализовать изложенные в них настройки. Однако все эти меры не всегда могут уменьшить время обработки данных до приемлемых величин. Поэтому администратору обычно необходимо и разбираться в том, как осуществляются расчеты в приложении. Часто наибольший эффект может дать изменение алгоритма расчетов. Например, расчет заработной платы для всего предприятия можно провести за меньшее время, если одновременно запустить несколько процессов — параллельно по нескольким подразделениям. А формирование отчета за длительный период можно ускорить, если предварительно сформировать отчеты за промежуточные периоды и т. д. Задача администратора в подобной ситуации — выяснить причины проблемы и подсказать возможные пути их разрешения. 1Не забывайте, что один сектор равен 512 байтам. Соответственно и рассчитывайте размер файла.
|
|
|