Улучшение производительности AIX 5L: Часть 1. Мониторинг центрального процессора

Общие сведения о центральном процессоре и методологиях его настройки

Большинство системных администраторов AIX ® ставят в тупик жалобы пользователей на то, что их система работает так медленно. Описываемые в этой статье приемы помогут достаточно легко устранить эту проблему.

Кен Милберг, UNIX-консультант Future Tech, составитель технической документации и эксперт по сайту, Future Tech

Кен Милберг занимает должности Technical Writer и Site Expert на сайте techtarget.com и предоставляет техническую информацию и поддержку по Linux на searchopensource.com. Он также является автором и техническим редактором IBM Systems Magazine, Open Edition. Кен обладает степенью бакалавра компьютерных и информационных наук и степенью магистра по менеджменту технологий Университета штата Мэрилэнд. Он является основателем и лидером группы пользователей POWER-AIX Лонг-Айленда. В течение многих лет он работал как в крупных, так и небольших организациях и занимал различные должности от директора по информационным технологиям до главного разработчика AIX. Сейчас он работает в Future Tech, бизнес-партнере IBM в Лонг-Айленде. Кен обладает званиями PMI certified Project Management Professional (PMP), IBM Certified Advanced Technical Expert (CATE, IBM System p5 2006), и Solaris Certified Network Administrator (SCNA). Вы можете связаться с ним по адресу kmilberg@gmail.com.



12.11.2007

Об этой серии статей

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

Введение

Любой администратор AIX знаком с некоторыми основными приемами настройки производительности, например, с помощью команд vmstat или topas, и умеет идентифицировать процессы, которые загружают центральный процессор. Но многие администраторы еще не знают, что настройка производительности центрального процессора - это не только запуск нескольких команд, но и проактивный мониторинг системы, даже когда у нее еще нет проблем с производительностью. Эта статья рассматривает отработанную на практике методологию настройки производительности центрального процессора с пошаговым описанием процедур. Кроме того, в статье представлены несколько полезных инструментов мониторинга, дается обзор процессора POWER и рассматриваются факторы, влияющие на производительность.

Настройка производительности в виртуальной среде является трудной задачей даже для большинства опытных системных администраторов, поэтому я рассмотрю особые проблемы в виртуальной среде, включая одновременную многопоточность (Simultaneous Multi-threading (SMT)), виртуальные процессоры, и POWER Hypervisor. Я также расскажу отдельно о нескольких важных аспектах настройки центрального процессора - настройке планировщика, балансировании рабочей нагрузки на систему и изменении алгоритма планировщика для точной настройки приоритета потоков. При поиске причин недостаточной производительности начните с изучения статистики использования центрального процессора. Очень важно осуществлять длительный мониторинг производительности системы, потому что это позволяет сравнить параметры работу системы в загруженном и нормальном режиме. Поскольку центральный процессор - это один из быстродействующих компонентов системы, то если он загружен на все 100%, это повлияет на производительность всей системы. Если окажется, что процессор постоянно загружен на все 100%, то необходимо выяснить, какой процесс создает такую нагрузку. В AIX имеется много инструментов отслеживания и профилирования системы и/или процессов. В системе, которая "тормозит" из-за процессоров, все процессоры загружены на 100% и очередь задач на выполнение слишком длинная по сравнению с числом самих процессоров, и процессоры активнее, чем обычно, переключаются между процессами.

Методики настройки

В этом разделе мы ознакомимся с несколькими методиками настройки AIX.

Создание контрольной точки

Прежде чем настраивать или даже выполнять мониторинг системы, нужно создать контрольную точку (baseline). Контрольная точка - это снимок того, какие параметры (количество памяти, центральный процессор, жесткие диски) и какая производительность были у системы когда она функционировала нормально. Она необходима как эталон для сравнения. Это особенно при использовании динамических логических разделов Dymanic Logical Partitioning (DLPAR). Для создания правильной контрольной точки надо выбрать инструменты для мониторинга. Существует много инструментальных средств, доступных для использования в AIX 5.3, некоторые из которых предназначены для мониторинга разделов и виртуализированной среды (например, lparstat и mpstat). Другие инструменты являются стандартными во всех вариантах UNIX® - например vmstat, sar, и ps. Есть утилиты, специально разработанные для AIX - topas, procmon, nmon. После выбора инструментов надо начинать собирать статистические данные и проводить замеры производительности - это поможет определить приемлемый уровень производительности для данной системы. Повторюсь, лучше начать отслеживать возможные проблемы до того, как о них сообщат пользователи. Необходимо задокументировать параметры нормально функционирующей системы. Для точности лучше составлять "портрет" корректно работающей системы с учетом приложений и сервисов, которые на ней обычно используются. В таком случае можно включить список этих приложений в соглашение об уровне сервиса (Service Legal Agreement (SLA)), которое пойдет на подпись к заказчику.

Тестирование системы под пиковой нагрузкой и мониторинг

Следующий шаг в методике настройки - это тестирование и мониторинг под пиковой нагрузкой. Требуется вести мониторинг системы при пиковой нагрузке и тогда, когда возникают проблемы в ее работе. Это поможет точно определить, что происходит с системой. Где чем узкое место системы - в центральном процессоре или в памяти, или в подсистеме ввода-вывода? Для большей уверенности я предпочитаю использовать несколько инструментов, например, интерактивную утилиту vmstat, и затем средство сбора данных типа nmon, чтобы отслеживать изменения в данных с течением времени. Без мониторинга невозможно эффективно провести настройку, поскольку он дает точную информацию о том, что происходит в системе, в том числе при пиковых нагрузках. Очень важно на этом этапе установить политику производительности для системы. Администратор может определить параметры, которые будут измеряться в процессе мониторинга, проанализировать тенденции в их изменении и затем в течение тестирования в стрессовом режиме.

Выявление узких мест

Цель тестирования и мониторинга под пиковой нагрузкой - это выявление узких мест системы. Невозможно обеспечить правильное лечение без точно поставленного диагноза. Если систему действительно тормозит центральный процессор, то можно использовать дополнительные инструменты, такие как trace, curt, splat, tprof, и ps, для дальнейшего определения процессов, из-за которых возникло это узкое место. Возможно также, что у системы недостаточно памяти или пропускной способности ввода-вывода, а вовсе не мощности центрального процессора. Устранение одного узкого места может привести к возникновению проблемы с центральным процессором - например, если у процессора не хватит мощности обработать тот поток данных, который пойдет к нему. Я часто сталкивался с подобными ситуациями, и их нельзя рассматривать как отрицательный результат - наоборот, они в чем-то даже полезны, так как позволяют выявить все слабые места системы. Мониторинг и настройка системы - это достаточно динамичный и не всегда предсказуемый процесс, который может потребовать больших усилий.

Настройка для устранения узких мест

После того как администратор обнаружил узкое место в системе, нужно так настроить параметры, чтобы оно исчезло. Для проблемы с центральным процессором это обычно подразумевает один из четырех вариантов:

  • Балансирование нагрузки на систему - запускать процессы в разное время для более эффективного использования 24-х часового дня.
  • Настроить планировщик, используя nice или renice - это поможет назначить разные приоритеты выполняемым процессам для предотвращения захвата центрального процессора одним процессом.
  • Настройка алгоритма планировщика при помощи schedo для точных настроек приоритетов - администратор может настроить различные параметры в AIX, используя schedo. Например, команда schedo может использоваться для изменения количества процессорного времени, выделяемого процессу. Значение по умолчанию для этого интервала - один такт системных часов (10 миллисекунд).
    Пример 1. Настройка параметра интервала времени
    # schedo -a | grep timeslice
                         timeslice = 1
  • Если требуется увеличить ресурсы, то можно добавить больше процессоров, или, в виртуальной среде, реконфигурировать логические разделы (LPAR), а также добавить логические разделы либо виртуальные процессоры к существующим логическим разделам. Правильная виртуализация распределенной среды поможет увеличить коэффициент использования физических ресурсов, уменьшить узкие места центрального процессора для определенных логических разделов и уменьшить незагруженные ресурсы логических разделов.

Некоторые дополнительные команды настройки центрального процессора: smtct, bindintcp и bindprocessor.

Повторение

Теперь надо снова пройти через шаги процесса настройки, начиная со второго раздела Тестирование системы под пиковой нагрузкой и мониторинг. Только несколько раз выполнив тесты и постоянно отслеживая параметры системы, администратор сможет определить, как повлияла на производительность проведенная им настройка. Я знаю некоторых системных администраторов, которые настраивают только определенные параметры, исходя из рекомендаций для определенных приложений, а затем пускают все на самотек. Это худшее, что можно сделать. То, что работает для одной среды, необязательно будет работать в другой. Невозможно узнать, помогла ли настройка устранить узкое место, если нет данных. Повторюсь, настройка производительности AIX - динамичный процесс, для достижения настоящего успеха надо постоянно вести мониторинг системы, что имеет смысл только после того, как была создана контрольная точка и составлено SLA. Если не определены параметры для нормальной работы системы, то как выяснить, что в ней возникли проблемы до того, как на них начнут жаловаться пользователи.

Центральный процессор

POWER (сокращенно от Power Optimization with Enhanced Risc) - это процессор, использующийся в серверах IBM среднего класса. POWER - это второе поколение RISC-процессора 801 (проект 801). Впервые он был представлен в 1990 для UNIX-систем RS6000®. Выпущенный 2001 году POWER4 стал первым 64-х битным многоядерным процессором. POWER4 использовался в сервере IBM Regatta и позволил создавать логические разделы. Архитектура POWER5, представленная в 2003 г., содержит 276 миллионов транзисторов на каждом процессоре. Он изготовлен по технологии 130 нанометров, с использованием технологии "кремний на диэлектрике" (SOI) с дополнительными особенностями:

  • Многопроцессорный чип
  • Большой кэш
  • Контроллер памяти на чипе
  • SMT
  • Расширенные функции управления питанием
  • Улучшенная технология гипервизора

POWER5 позволил создавать до 256 логических разделов (LPAR) и доступен во всей линейке серверов pSeries® и iSeries™. Двухядерные процессоры с поддержкой технологии SMT создаются при помощи SOI-устройств (структура типа "кремний на диэлектрике") и медных плат. SOI используется для уменьшения емкости и увеличения производительности транзистора. Фактически POWER5 - это второе поколение двухъядерных процессоров IBM с расширенными и новыми функциями гибкого разбиения на логические разделы. POWER5, установленный в модули с двумя чипами (Dual Chip Modules (DCMs)) и несколькими чипами (Multi-Chip Modules (MCMs)) является основным компонентом серверов среднего и старшего класса соответственно.

Ниже представлены некоторые из новшеств POWER5:

  • Расширенная подсистема памяти
  • Улучшенная конструкция кэша L1
  • Новый алгоритм замещения страниц (LRU в сравнении с FIFO)
  • Увеличенный кэш L2 1.9 MB, 10-way set associative
  • Улучшенная конструкция кэша L3
  • Быстрее обрабатываются непопадания в кэш L2
  • Уменьшение трафика в фабрике интерконнект
  • Встроенный контроллер каталогов и памяти кэша L3
  • Встроенный контроллер каталогов L3 уменьшает задержки при непопадании в L2
  • Улучшенные алгоритмы пред-выборки
  • Увеличенная производительность
  • SMT
  • Аппаратная поддержка микроразделов

Возможно самые важные улучшения в архитектуре процессора POWER5 это поддержка микроразделов (один из видов динамического разбиения на логические разделы) и SMT, что также поддерживается на уровне операционной системы AIX 5L Version 5.3. Микроразделы предоставляет возможность разделить один процессор между несколькими логическими разделами. Эти разделы называют разделами "с общим процессором". Конечно, системы на базе POWER5 продолжают поддерживать логические разделы с выделенными процессорами, которые не делят один физический процессор с другими разделами.

В среде с разделами с общими процессорами гипервизор POWER распределяет право на использование процессора из пула физических центральных процессоров между разделами. Совокупность физических процессоров называется общим процессорным пулом. Право на использование процессора распределяется заново с каждым новым циклом диспетчеризации гипервизора. В течение каждого цикла диспетчеризации раздел либо удерживает за собой процессор либо уступает право на его использование другому разделу. Рисунок 1 показывает образец разделов с общими процессорами и выделенного раздела в среде с микроразделами.

Рисунок 1. Образец разделов с общими процессорами и выделенного раздела в среде с микроразбиением
Образец разделов с общими процессорами и выделенного раздела в среде с микроразбиением

SMT

SMT предоставляет возможность одному физическому процессору одновременно выполнять команды из нескольких аппаратных потоков. В AIX 5L Version 5.3 выделенные логические разделы, созданные одними и тем же процессором, конфигурируются по умолчанию как двухпоточные. По существу два аппаратных потока могут одновременно работать на одном физическом процессоре. Хотя в некоторых ситуациях активация SMT может негативно повлиять на производительность, SMT остается лучшим выбором, если суммарная производительность важнее, чем скорость выполнения отдельного потока. Благодаря уникальной двухядерной архитектуре POWER5 и поддержке SMT один чип POWER5 фактически является четырехпоточным микропроцессором. Процессоры, используя SMT, могут выполнять несколько команд из различных последовательностей в течение одного цикла. Рисунок 2 иллюстрирует отношения между чипом как таковым и SMT.

Рисунок 2. Модуль с двумя чипами
Модуль с двумя чипами

Выполнение одновременно нескольких потоков на разных процессорах является эффективным использованием IBM SMT. Если система работает в режиме SMT, то процессор выполняет команды более, чем от одного потока. Реализованная только для архитектуры POWER5 концепция SMT состоит в том, что один процесс не может в один и тот же момент использовать все модули команд процессора. Конструкция POWER5 реализует двухпоточный SMT для каждого физического ядра процессора, поэтому на одном физическом ядре процессора работают два виртуальных процессора. Самые большие преимущества от SMT проявляются при работе с коммерческих приложениями, где скорость разовой транзакции менее важна, чем их общее число. Кроме того, SMT увеличивает производительность при обработке приложений, связанных с большими объемами данных, например базами данных или Web-сервера. В среднем производительность системы при использовании SMT возрастает на 30 процентов.

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

Пример 2. Просмотр процессоров
//To view all processors (logical and physical):

# bindprocessor -q
The available processors are:  0 1 2 3

//To view the physical processors

# bindprocessor -s 0
The available processors are:  0 2

//To view the SMT enables processors.
# bindprocessor -s 1
The available processors are:  1 3

Гипервизор и виртуальные разделы

Технология, на которой базируется виртуализация систем IBM p5 systems, является частью встроенного программного обеспечения, называемого POWER Hypervisor (Гипервизор), которое записано во флэш-памяти. Эта прошивка выполняет инициализацию и конфигурацию процессоров POWER5, также как и реализует виртуализацию, необходимую для одновременной поддержки 254 разделов на серверах IBM p5. POWER Hypervisor использует часть ресурсов процессоров и памяти системы. При этом влияние гипервизора на производительность будет незначительно при обработке большинстве приложений, хотя оно может увеличиться из-за интенсивного разбиения на страницы. Возможности настройки гипервизора практически полностью отсутствуют. В предыдущих версиях слабым местом было ограниченное число виртуальных процессоров при неограниченном числе разбиений. Это происходило из-за накладных расходов при использовании виртуальных процессоров. Начиная с AIX 5.4 ML3, AIX представляет новую возможность - сворачивание (fold) виртуального процессора. Эта возможность позволяет простаивающим процессорам входить в спящий режим и активироваться только тогда, когда требуется справиться с возросшей нагрузкой. Права на использование этих виртуальных процессоров по мере необходимости перераспределяются на клиентские разделы в общем процессорном пуле. Параметр vpm_xvcpus активирован по умолчанию, а изменить его значение можно с помощью schedo.

В среде разделов с общими процессорами микрораздел процессора будет всегда простаивать в течение слота времени. Когда виртуальный процессор или SMT-поток простаивает, он в состоянии запустить цикл Гипервизора, и затем Гипервизор может перераспределить неиспользуемые циклы процессора на другую работу. Чтобы максимально повысить коэффициент использования центрального процессора на уровне потока процессора (для SMT-среды), архитектура POWER5 реализует регистр нового типа - он называется Регистр Использования Ресурсов Процессора (Processor Utilization Resource Register, в дальнейшем PURR). У каждого потока есть свой собственный PURR. Единицы измерения те же, что у регистра времени time base, а сумма PURR-значений для обоих потоков равна значению регистра времени. Традиционные методы измерения коэффициента использования процессора плохо работают в средах SMT и SPLAR , поэтому регистры PURR предоставляют более точную информацию об использовании процессора.

Из-за SMT, микроразделов и возможности динамического изменения некоторых параметров появилась необходимость внести изменения в некоторые из старых инструментов. Если SMT используется в среде с микроразделами, то команды vmstat, iostat, и sar будут автоматически использоваться с данными регистра PURR. В AIX 5L Version 5.3 команда lparstat отображает статистические данные о многих вызовах POWER Hypervisor. Флаг -h добавляет статистику POWER Hypervisor к информации, выводимой по умолчанию командой lparstat (см пример 3).

Пример 3. Информация, выводимая lpartstat при помощи флага -h
# lparstat -h 1 5

System configuration: type=Dedicated mode=Capped smt=On lcpu=4 mem=3920

%user  %sys  %wait  %idle  %hypv hcalls
-----  ----  -----  -----  ----- ------
  0.0   0.7    0.0   99.3   44.4 5933918
  0.4   0.3    0.0   99.3   44.9 5898086
  0.0   0.1    0.0   99.9   45.1 5930473
  0.0   0.1    0.0   99.9   44.6 5931287
  0.0   0.1    0.0   99.9   44.6 5931274
#

Заключение

Настройка производительности - это одна из наиболее сложных задач системного администрирования. Для настройки системы необходимо разобраться в методологии настройки производительности, которая состоит в создания контрольной точки конкретной системы, осуществления ее мониторинга и выполнения эффективного тестирования при пиковых нагрузках. Серверы System p™ имеют новые мощные функции, которые помогают настроить центральные процессоры POWER5 под управлением операционной системы AIX 5.3. Я рассмотрел некоторые из возможностей виртуализации POWER5, включая микроразделы и гипервизор (Hypervisor). Многие команды были усовершенствованно для предоставления функций виртуализации и гипервизора в архитектуре POWER5. Первая статья этого цикла также рассматривает несколько команд и утилит для мониторинга и настройки производительности. В следующих статьях этого цикла я рассмотрю в деталях утилиты, которые используются для обнаружения узких мест в системе и настройки ваших серверов.

Ресурсы

Научиться

Получить продукты и технологии

  • IBM trial software: создайте приложение при помощи программного обеспечения, загруженного со страниц сообщества developerWorks.(EN)

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=AIX и UNIX
ArticleID=268614
ArticleTitle=Улучшение производительности AIX 5L: Часть 1. Мониторинг центрального процессора
publish-date=11122007