WWW.DOC.KNIGI-X.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Различные документы
 

Pages:   || 2 |

«Red Hat Enterprise Linux 6 Оптимизация производительности Оптимизация пропускной способности в Red Hat Enterprise Linux 6 Red Hat. ...»

-- [ Страница 1 ] --

Red Hat Enterprise Linux 6

Оптимизация

производительности

Оптимизация пропускной способности

в Red Hat Enterprise Linux 6

Red Hat. Отдел документации

Red Hat Enterprise Linux 6 Оптимизация

производительности

Оптимизация пропускной способности

в Red Hat Enterprise Linux 6

Red Hat. Отдел документации

Под редакцией

Don Domingo

Laura Bailey

Юридическое уведомление

Copyright 2011 Red Hat, Inc. and others. This document is licensed by Red Hat under the Creative

Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. Linux is the registered trademark of Linus Torvalds in the United States and other countries. Java is a registered trademark of Oracle and/or its affiliates. XFS is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project. All other trademarks are the property of their respective owners. 1801 Varsity Drive Raleigh, NC 27 606-207 2 USA Phone: +1 919 7 54 37 00 Phone: 888 7 33 4281 Fax: +1 919 7 54 37 01 Ключевые слова Аннотация В этом документе рассматриваются методы оптимизации производительности систем Red Hat Enterprise Linux 6. Несмотря на то что большинство приведенных здесь процедур было тщательно протестировано, Red Hat рекомендует провести проверку проектируемых конфигураций, прежде чем приступить к их внедрению в рабочее окружение.

Дополнительно следует создать резервные копии исходных настроек и данных.

Сод ержание Содержание...... ение.....................................................................

Введ..... 6

1. tСоглашения д окумента

–  –  –

Введение

1. tСоглашения документа В этом руковод стве используются различные стили д ля выд еления текста.

В PDF и бумажной версии д окумента используются шрифты семейства Liberation. Эти же шрифты используются д ля отображения HT ML-версии, если они установлены в системе. В противном случае вместо них используются похожие шрифты. Red Hat Enterprise Linux 5 и более позд ние версии включают в свой состав комплект шрифтов Liberation по умолчанию.

1.1. Т ипографические соглашения Д ля выд еления текста используются четыре стиля, которые буд ут перечислены д алее.

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

Например:

Чтобы просмотреть сод ержимое файла m y_next_bestselling_novel, расположенного в текущем каталоге, в строке приглашения оболочки введ ите cat m y_next_bestselling_novel и нажмите Enter д ля выполнения этой команд ы.

Привед енный выше текст сод ержит имя файла, команд у оболочки и название клавиши, выд еленные моноширинным жирным шрифтом. Все они различаются по контексту.

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

Например:

Нажмите Enter д ля исполнения команд ы.

Нажмите Ctrl+Alt+F2 д ля переход а в виртуальный терминал.

В первом примере выд елена отд ельная клавиша, которую над о нажать. Во втором примере выд елена комбинация клавиш — три клавиши, которые над о нажать од новременно.

Если при описании исход ных код ов программы внутри параграфа встречаются имена классов, метод ов, функций, переменных и возвращаемые ими значения, то они тоже выд еляются монош иринным жирным ш риф том.

Например:

В состав классов, имеющих отношение к обработке файлов, вход ят классы filesystem д ля работы с файловыми системами, file д ля работы с файлами, dir д ля работы с каталогами. Кажд ый класс имеет свой собственных набор прав д оступа.

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

Например:

Выберите из главного меню Система Параметры Мышь д ля запуска приложения Настройка мыши. На вклад ке Кнопки установите флажок Настроить мыш ь под левую руку и нажмите кнопку Закрыть, чтобы правая кнопка мыши стала работать как главная (это д елает мышь более уд обной д ля левши).

Red Hat Enterprise Linux 6 Оптимизация производ итель ности Чтобы вставить специальный символ в файл, отрытый в ред акторе gedit, выберите из главного меню Приложения Станд артные Т аблиц а символов. Затем в меню приложения Т аблиц а символов выберите Поиск Найти, введ ите название символа в поле Найти и нажмите кнопку Найти след ую щ ее. Найд енный символ буд ет выд елен на заклад ке Т аблица символов. Д важд ы щелкните на этом символе, чтобы вставить его в поле Т екст д ля копирования, после чего нажмите кнопку Копировать. Т еперь вернитесь в ваш д окумент и в меню ред актора gedit выберите Правка Вставить.

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

Моноширинный жирный курсив или пропорциональный жирный курсив Оба типа выд еления указывают на изменчивость текста. Использование курсива означает, что текст не след ует ввод ить буквально, или что он может меняться при вывод е в зависимости от обстоятельств.

Например:

Д ля под ключения к уд аленной машине с помощью SSH введ ите в интерпретаторе команд ssh имя_пользователя@ имя_домена. Скажем, если имя уд аленной машины — exam ple.com, а имя пользователя — john, то команд а буд ет выгляд еть так: ssh john@ exam ple.com.

Команд а m ount -o rem ount файловая_система перемонтирует указанную файловую систему. Например, д ля файловой системы /hom e команд а буд ет выгляд еть так: m ount -o rem ount /hom e.

Чтобы просмотреть версию установленного пакета, выполните команд у rpm -q пакет. Результат команд ы буд ет пред ставлен в формате пакет-версия-выпуск.

Обратите внимание на слова, выд еленные жирным курсивом: имя_пользователя, имя_д омена, файловая_система, пакет, версия, выпуск. Кажд ое из них обозначает место, куд а нужно под ставить значение во время запуска команд ы, или текст, под ставляемый системой при вывод е.

Помимо заголовка работы курсивом выд еляются важные термины, которые встречаются в тексте д окумента впервые.

Например:

Publican — система публикации DocBook.

1.2. Выд еление отрывков текста Вывод на терминал и фрагменты исход ного код а программ визуально отд еляются от окружающего текста.

Д ля отображения текста, вывод имого на терминал, используется прямой монош иринный ш риф т:

–  –  –

System.out.println("Created Echo");

System.out.println("Echo.echo('Hello') = " + echo.echo("Hello"));

} }

1.3. Замечания и пред упрежд ения Наконец, в д окументе используются три визуальных стиля д ля привлечения внимания к информации, которую легко упустить.

–  –  –

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

–  –  –

Важные замечания выд еляют то, что легко не заметить: изменения настроек, касающиеся только текущего сеанса, или перечень служб, которые над о перезапустить, чтобы обновления вступили в силу. Игнорирование замечаний с пометкой «Важно» не привод ит к потере д анных, но может вызвать разд ражение и д осад у.

–  –  –

Не стоит игнорировать пред упрежд ения, так как они сод ержат важную информацию, которая позволит избежать потери д анных.

2. Получение помощи и обратная связь

2.1. Нужна помощь?

Если вы столкнулись с проблемами при выполнении инструкций, описанных в этом д окументе, помощь можно получить через портал пользователей Red Hat (http://access.redhat.com).

Т ам вы Red Hat Enterprise Linux 6 Оптимизация производ итель ности сможете:

выполнить поиск или просмотреть технические статьи в базе знаний прод уктов Red Hat;

отправить запрос в службу глобальной под д ержки Red Hat;

получить д оступ к д ругой официальной д окументации.

Существует множество почтовых рассылок Red Hat на разные темы, включая программное обеспечение и обсужд ение технологий. Полный список можно найти по ад ресу https://www.redhat.com/mailman/listinfo. Чтобы просмотреть информацию об интересующей рассылке и под писаться на нее, нажмите на ее названии.

2.2. Нам нужны ваши отзывы Если вы нашли опечатку в этом руковод стве или у вас есть пред ложения по его усовершенствованию, мы хотели бы об этом узнать. Созд айте запрос в Bugzilla по ад ресу http://bugzilla.redhat.com/, выбрав компонент Red Hat Enterprise Linux 6.

Не забуд ьте указать в запросе ид ентификатор д анного руковод ства: docPerformance_Tuning_Guide.

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

–  –  –

Глава 1. Обзор В руковод стве по оптимизации производ ительности рассматривается конфигурация и оптимизация Red Hat Enterprise Linux.

Несмотря на то, что д окумент сод ержит информацию о Red Hat Enterprise Linux 5, в основном, инструкции рассчитаны на Red Hat Enterprise Linux 6.

Д окумент разбит на разд елы, в которых обсужд аются отд ельные под системы Red Hat Enterprise

Linux. Д ля кажд ой под системы рассматривается след ующее:

Функц ии Описание под систем начинается с обзора их функций в Red Hat Enterprise Linux 6, а также обновлений Red Hat Enterprise Linux 6, которые способствовали повышению их производ ительности.

Анализ В секциях анализа обсужд аются основные характеристики производ ительности отд ельных под систем, что поможет оценить их значимость в реальных окружениях.

Д ополнительно буд ут рассмотрены способы сбора статистики под систем (что известно как профилирование). Инструменты профилирования могут под робно рассматриваться в д ругих д окументах.

Конфигурац ия Возможно, наиболее важная информация привед ена в секциях, посвященных изменению конфигурации с целью повышения производ ительности под систем Red Hat Enterprise Linux 6.

Оптимизация од ной под системы может отрицательно сказаться на работе д ругой под системы.

Станд артная конфигурация Red Hat Enterprise Linux 6 является оптимальной д ля большинства служб с умеренной нагрузкой.

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

1.1. Целевая аудиторияЭтот д окумент рассчитан на след ующих специалистов:

Системные и бизнес-аналитики Д окумент пред оставляет общую информацию о производ ительности Red Hat Enterprise Linux 6 и отд ельных под систем д о и после оптимизации. Т акого уровня д етализации д остаточно, чтобы помочь потенциальным клиентам оценить пригод ность платформы д ля работы в условиях интенсивной нагрузки.

Руковод ство сод ержит ссылки на специализированные д окументы, после ознакомления с которыми у читателя буд ет д остаточно знаний д ля формирования высокоуровневой стратегии развертывания и оптимизации Red Hat Enterprise Linux 6. Это позволит не только разрабатывать новые схемы инфраструктур, но и выполнять анализ пред лагаемых проектов.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности Т акая структура д окумента рассчитана на читателей с общими знаниями под систем Linux и сетей уровня пред приятия.

Системные ад министраторы Материал рассчитан на специалистов уровня RHCE [1] и системных ад министраторов с аналогичным опытом работы с Linux (3-5 лет). Результаты кажд ой схемы конфигурации и их влияние на производ ительность буд ут рассматриваться более под робно.

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

1.2. Горизонтальное масштабирование Основным критерием при улучшении производ ительности является возможность д альнейшего масштабирования. Функции производ ительности оцениваются с точки зрения их эффективности д ля разных объемов нагрузки — от уровня простого веб-сервера д о крупной серверной фермы.

Масштабирование позволяет быстро ад аптироваться в зависимости от степени нагрузки и корректировать инфраструктуру растущей организации.

Увеличение производ ительности Red Hat Enterprise Linux осуществляется за счет горизонтального и вертикального масштабирования. Горизонтальное масштабирование более распространено и заключается в распред елении нагрузки межд у несколькими станд артными компьютерами.

Обычно компьютеры, вход ящие в состав серверной фермы, пред ставляют собой компактные blade-серверы или серверы высотой 1U. Некоторые фермы д опускают использование больших систем с множеством сокетов, а крупные сети уровня пред приятия могут включать комбинации разных типов — большие системы выполняют роль высокопроизвод ительных серверов (серверов баз д анных), а небольшие выступают в качестве выд еленных программных серверов (почтовых и веб-серверов).

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

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

1.2.1. Параллельные вычисления Горизонтальное масштабирование не только упрощает ад министрирование аппаратных ресурсов, но и является пред почтительной стратегией развития с учетом постоянных изменений на рынке оборуд ования.

Комплексные приложения уровня пред приятия од новременно обрабатывают тысячи зад ач.

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

–  –  –

ноутбуках.

Начиная с 2010 год а станд артные процессоры Intel и AMD стали включать от 2 д о 16 яд ер. Эти процессоры популярны в плоских 1U и blade-серверах, которые теперь могут сод ержать д о 40 яд ер. Т акие решения получили широкое распространение в силу экономичности и высокой производ ительности.

Оптимальная производ ительность д остигается при максимальной занятости всех яд ер. Это означает, что 32 яд ра сервера д олжны обрабатывать 32 зад ачи. Если серверная стойка сод ержит 10 серверов, вся группа может од новременно обрабатывать минимум 320 зад ач. Если зад ачи являются составляющими од ного большого зад ания, их обработку над о буд ет коорд инировать.

Red Hat Enterprise Linux легко ад аптируется к изменяющимся требованиям и обновлению оборуд ования. Разд ел 1.3, «Распред еленные системы» рассматривает технологии горизонтального масштабирования.

1.3. Распределенные системы Горизонтальное масштабирование Red Hat Enterprise Linux реализуется посред ством распределенных вычислений. Т ехнологии распред еленных вычислений строятся на трех уровнях:

Взаимод ействие Горизонтальное масштабирование д остигается за счет параллельного выполнения зад ач. Д ля их коорд инации необход имо обеспечить возможность взаимод ействия межд у процессами и системами.

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

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

Д алее кажд ый уровень буд ет рассмотрен под робно.

1.3.1. Взаимод ействие

Этот уровень контролирует перед ачу д анных и охватывает:

оборуд ование, программное обеспечение.

Самый простой способ установки связи межд у системами состоит в использовании общей памяти. Ключевыми характеристиками общей памяти являются скорость полосы пропускания и низкая зад ержка при обработке запросов чтения и записи.

Ethernet Red Hat Enterprise Linux 6 Оптимизация производ итель ности Ethernet является наиболее распространенным способом перед ачи д анных межд у компьютерами. На сегод няшний д ень по умолчанию используется Gigabit Ethernet (GbE), и серверы обычно имеют 2-4 порта Gigabit Ethernet. Именно GbE чаще всего используется д ля организации распред еленных схем. Д аже если Ethernet-карты под д ерживают более высокую скорость перед ачи, GbE может по-прежнему использоваться д ля выд еленного управляющего интерфейса.

10GbE

Станд арт 10GbE (10 Gigabit Ethernet) становится все более популярным при проектировании мощных серверов, так как его скорость в 10 раз превышает скорость GbE. Его основным преимуществом является обеспечение баланса межд у скоростью перед ачи и вычислений д ля многояд ерных процессоров. 10GbE позволяет под д ерживать оптимальный уровень производ ительности системы без ограничения скорости связи.

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

Infiniband

Скорость Infiniband значительно выше по сравнению с 10GbE. Помимо соед инений T CP/IP и UDP, используемых с Ethernet, Infiniband под д ерживает взаимод ействие с общей памятью, что позволяет использовать этот станд арт протоколами уд аленного прямого д оступа к памяти (RDMA, Remote Direct Memory Access).

RDMA позволяет перед авать д анные межд у системами напрямую без обмена T CP/IP и участия сокетов, тем самым исключая излишнюю зад ержку, что может оказаться критическим фактором д ля некоторых приложений.

Infiniband обычно используется д ля высокопроизвод ительных вычислений (HPT C, High Performance T echnical Computing), гд е скорость работы и отсутствие зад ержек имеют критическое значение. Д ля д остижения необход имого уровня производ ительности иногд а имеет смысл инвестировать в Infiniband, а не в процессоры и память.

RoCCE RoCCE (RDMA over Ethernet) объед иняет соед инения Infiniband с прямым д оступом к памяти и инфраструктуру 10GbE. Рынок прод укции 10GbE постоянно расширяется, поэтому вполне можно ожид ать, что со временем RDMA и RoCCE буд ут использоваться более широко.

Все перечисленные станд арты полностью под д ерживаются в Red Hat Enterprise Linux 6.

1.3.2. Хранение д анных Схемы распред еленных вычислений используют разные экземпляры общего хранилища. Это возможно за счет след ующего:

Разные системы хранят д анные в од ном месте.

Пространство хранения состоит из разных устройств хранения.

Т ипичным примером хранилища служит локальный д иск, что ид еально под ход ит, если все операции выполняются на од ном узле. Но с ростом инфраструктуры и увеличением числа компьютеров управление д исками значительно усложняется.

–  –  –

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

Объед инение наборов накопителей в од ин том выгод но и ад министраторам, и пользователям.

Это д обавляет новый уровень абстракции — пользователи вид ят ед инственный ресурс, размер которого ад министратор может с легкостью нарастить, д обавив д ополнительное оборуд ование.

Д ругие д остоинства включают отказоустойчивость и многопутевые возможности.

NFS NFS (Network File System) позволяет серверам и пользователям обращаться к файловым системам через T CP или UDP. Эта файловая система используется д ля хранения д анных, к которым обращаются разные приложения, и под ход ит д ля хранения больших объемов информации.

SAN Сети хранения д анных (SAN, Storage Area Network) используют протоколы Fibre Channel и iSCSI д ля уд аленного д оступа к д анным. Инфраструктура Fibre Channel объед иняет в себе ад аптеры шин, коммутаторы, массивы д анных и характеризуется высокой скоростью работы и пропускной способностью. Пространство д анных SAN отд елено от сети, что обеспечивает опред еленный уровень гибкости при д изайне системной структуры.

Главным д остоинством SAN является возможность созд ания окружения д ля ад министрирования пространства хранения д анных:

управление д оступом к пространству хранения д анных;

управление большими объемами д анных;

под готовка систем;

резервное копирование и репликация д анных;

созд ание снимков;

восстановление систем;

обеспечение целостности д анных;

миграция д анных.

GFS2 Файловая система GFS2 (Global File System 2) д опускает од новременное выполнение чтения и записи д анных, расположенных на разных узлах в кластере. Т аким образом, узлы смогут обращаться к од ним и тем же д анным, как буд то они расположены на од ном д иске.

За под д ержку целостности д анных при од новременном выполнении операций чтения и записи отвечает механизм блокирования DLM (Distributed Lock Manager), разрешающий только од ной системе выполнять запись в зад анное место в опред еленный момент.

GFS2 ид еально под ход ит д ля отработки отказа приложений, д ля которых высокая готовность накопителей является критически важным фактором.

За д альнейшей информацией обратитесь к руководству по администрированию кластера и GFS2 по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

1.3.3. Конвергенц ия сетей Наиболее распространенным способом взаимод ействия компьютеров по сети является Ethernet, Red Hat Enterprise Linux 6 Оптимизация производ итель ности в то время как д ля перед ачи д анных используется выд еленное окружение Fibre Channel SAN.

Д овольно часто управление системами также осуществляется из выд еленных сетей или при помощи пульсирующих сигналов [2].

Созд ание множества каналов под ключения к кажд ому серверу является д орогим и громозд ким решением, именно поэтому и возникла необход имость объед инения соед инений, что реализуется при помощи протоколов FCoE и Internet SCSI.

FCoE Протокол FCoE (Fibre Channel over Ethernet) использует физическую инфраструктуру 10GbE д ля перед ачи пакетов д анных через ед инственную конвергентную карту (CNA, converged network card). Станд артный трафик T CP/IP и операции перед ачи д анных тоже могут обрабатываться под обным образом. Конвергенция сетей позволяет использовать од ну сетевую карту д ля обработки множества сетевых под ключений.

Д остоинства FCoE:

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

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

С учетом того, что себестоимость технологии 10GbE также постепенно снижается, а конвергентные сетевые ад аптеры интегрируются в од ну микросхему, их д оступность привод ит к все более широкому использованию, что со временем привед ет к снижению цен.

iSCSI Протокол iSCSI (Internet SCSI) тоже используется д ля конвергенции сетей и пред оставляет альтернативу FCoE. Несмотря на то что iSCSI не включает полный д иапазон функций управления, его д остоинствами являются гибкость и экономичность.

[1] Red Hat Certified Eng ineer (с м. http ://www.red hat.c o m/training /c ertific atio ns /rhc e/).

–  –  –

Глава 2. Особенности производительности Red Hat Enterprise Linux 6 2.

1. 64-разрядные процессоры Red Hat Enterprise Linux 6 под д ерживает 64-разряд ные процессоры, которые теоретически могут использовать д о 16 эксабайт памяти. В Red Hat Enterprise Linux 6 также официально под д ерживается д о 8 терабайт физической памяти.

В буд ущих выпусках Red Hat Enterprise Linux 6 размер под д ерживаемой памяти буд ет увеличиваться, так как Red Hat буд ет прод олжать совершенствовать функции, позволяющие использовать блоки памяти больших размеров. Примеры такой оптимизации в Red Hat Enterprise

Linux 6 включают:

Прозрачные и очень большие страницы Улучшения неравномерного д оступа к памяти Д алее они буд ут рассмотрены более под робно.

Прозрачные и очень большие страниц ы Реализация очень больших страниц в Red Hat Enterprise Linux 6 увеличивает эффективность управления памятью независимо от уровня нагрузки. Размер больших страниц составляет 2 МБ (размер станд артной страницы равен 4 КБ), что облегчает масштабирование приложений, позволяя работать с гигабайтами и д аже терабайтами памяти.

Управлять большими страницами вручную д овольно сложно, поэтому Red Hat Enterprise 6 пред ставляет концепцию прозрачных страниц д ля автоматизации зад ач управления.

Разд ел 5.2, «Увеличение размера страниц» сод ержит под робную информацию.

Оптимизац ия NUMA Современные системы под д ерживают неравномерный д оступ к памяти (NUMA, Non-Uniform Memory Access). NUMA значительно упрощает проектирование схемы оборуд ования д ля крупных систем, но в то же время усложняет разработку приложений. Пред ставим ситуацию, гд е NUMA работает и с локальной, и с уд аленной памятью. Т ак как обращение к уд аленной памяти занимает намного д ольше по сравнению с локальным д оступом, это негативно скажется на производ ительности операционной системы, приложений, и поэтому конфигурацию системы потребуется откорректировать.

Red Hat Enterprise Linux 6 включает оптимизированные функции управления пользователями и приложениями в системах NUMA, включая привязку процессоров, объед инение их в наборы cpuset, утилиту numactl, а также контрольные группы, позволяющие сопоставить приложения процессорам.

Разд ел 4.1.

1, «Т опология NUMA» сод ержит д альнейшую информацию о NUMA в Red Hat Enterprise Linux 6.

2.2. Спин-блокировка При проектировании систем след ует помнить, что процессы не д олжны изменять память, используемую д ругими процессами. Т акие изменения могут привести к искажению д анных и сбою системы. Чтобы этого не случилось, операционная система блокирует участок памяти, Red Hat Enterprise Linux 6 Оптимизация производ итель ности выполняет операцию и снова его освобожд ает.

Распространенным решением является спин-блокирование — блокирование с ожид анием, то есть процесс период ически проверяет наличие д оступа к разд еляемому ресурсу и блокирует его, как только ресурс освобожд ается. Если к ресурсу обращается несколько процессов, д оступ получит тот процесс, который первым запросил его состояние после освобожд ения.

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

Red Hat Enterprise Linux решает эту зад ачу при помощи спин-блокировок по мере поступления запросов, д обавляя процессы в очеред ь, тем самым обеспечивая равномерность обработки.

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

2.3. Динамическая структура списков Операционная система требует наличия опред еленного набора д анных д ля кажд ого процессора.

В Red Hat Enterprise Linux 5 д ля этого в памяти выд еляется массив фиксированного размера.

Обращение к массиву осуществляется посред ством инд ексации, что ид еально под ход ит д ля систем с небольшим числом процессоров в силу простоты и скорости.

Од нако при увеличении числа процессоров д оступ к фиксированному массиву буд ет усложняться, так как все больше процессоров буд ут к нему обращаться.

В Red Hat Enterprise Linux 6 используется динамическая структура списков, что позволяет д инамически изменять размер массива. Т ак, д ля восьми процессоров список буд ет сод ержать 8 записей, а д ля 2048 процессоров — 2048.

Д инамический размер списков обеспечивает более тонкий контроль блокирования. Например, в многопроцессорной схеме можно буд ет параллельно обновить д анные д ля процессоров 6, 72, 183, 657, 931 и 1546.

2.4. Безтактовое ядро Раньше яд ро Linux период ически генерировало прерывание д ля опроса процессора. Полученные результаты использовались д ля распред еления нагрузки.

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

Максимальный уровень энергосбережения д остигается при переход е системы в спящий режим.

Чтобы пред отвратить ненужные попытки пробужд ения, яд ро Red Hat Enterprise Linux 6 вместо период ических прерываний генерирует их при необход имости.

Безтактовое яд ро позволяет под д ерживать систему в спящем режиме и пробужд ать ее только при получении зад аний.

За д альнейшей информацией обратитесь к руководству по управлению энергопотреблением по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

–  –  –

2.5. Контрольные группы Red Hat Enterprise Linux пред оставляет множество инструментов д ля оптимизации производ ительности растущих систем и ад аптации к росту числа процессоров. Од нако это требует наличия необход имых знаний и опыта. Раньше крупные системы были ред костью в силу их высокой стоимости, и это оправд ывало инд ивид уальный под ход. Постепенно они становились все более д оступны, поэтому д ля их оптимизации стали требоваться более эффективные сред ства.

Зад ачу усложняет тот факт, что все чаще д ля консолид ации служб используются мощные системы. Од ин сервер способен справляться с объемом нагрузки, д ля обработки которого раньше требовалось от 4 д о 8 серверов. На сегод няшний д ень многие системы в сред нем д иапазоне намного мощнее ранних высокопроизвод ительных машин.

Большинство современных приложений изначально разрабатывается с учетом параллелизма.

Од нако немногие могут эффективно использовать больше восьми потоков, и их обычно устанавливают в 32-процессорных системах.

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

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

Red Hat Enterprise Linux 6 решает эту проблему с помощью контрольных групп. Контрольные группы (cgroups) позволяют пред оставлять ресурсы по мере необход имости. Т ак, например, ад министратор может выд елить 80% ресурсов четырех процессоров, 40% д искового ввод авывод а и 60 ГБ памяти приложению базы д анных. Веб-приложению, которое выполняется на том же узле, может быть выд елено д ва процессора, 50% сетевого трафика и 2 ГБ памяти.

Быстрод ействие под д ерживается за счет ограничения потребления ресурсов процессами.

Д ополнительное преимущество контрольных групп состоит в их способности автоматической коррекции в зависимости от нагрузки.

Компоненты контрольных групп:

список зад ач, ресурсы.

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

Ад министратор может распред елять след ующие ресурсы:

наборы процессоров;

память;

ввод -вывод ;

сетевые ресурсы.

Ад министратор может настроить число процессоров, сопоставить зад ачи процессорным узлам [3] и выд елить процессорное время набору зад ач. Правильная настройка cpuset критична д ля д остижения высокого уровня производ ительности и позволяет равномерно распред елять вычислительные ресурсы межд у зад ачами.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности Управление ресурсами ввод а-вывод а и перед ачи д анных по сети осуществляется д ругими контроллерами.

Как уже говорилось, контрольные группы выд еляют ресурсы приложениям, после чего система сможет автоматически распред елять нагрузку межд у приложениями, под д ерживая оптимальную работоспособность.

За д альнейшей информацией обратитесь к руководству по управлению ресурсами по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

2.6. Оптимизация файловой системы Red Hat Enterprise Linux 6 включает улучшенные возможности хранения д анных, включая под д ержку ext4 и XFS (см. Глава 7, Файловые системы).

Ext4 Файловая система еxt4 в Red Hat Enterprise Linux 6 используется по умолчанию. Ее основной особенностью является увеличение максимального размера разд ела д о 1 эксабайта и файла д о 16 Т Б. В свою очеред ь, Red Hat Enterprise Linux 6 под д ерживает файловые системы с максимальным размером 16 Т Б и файлы размером д о 16 Т Б.

Д ругие д остоинства ext4:

уменьшение размера метад анных за счет использования экстентов;

отложенное выд еление блоков;

контрольные суммы журналов.

Разд ел 7.3.

1, «Ext4» сод ержит более под робную информацию о файловой системе ext4.

XFS 64-разряд ная файловая система XFS включает функции журналирования и оптимально под ход ит д ля организации больших файлов и файловых систем на од ном компьютере. XFS изначально была рассчитана д ля работы на больших серверах.

Особенности XFS:

отложенное выд еление блоков;

д инамическое выд еление узлов;

инд ексация B-tree;

онлайн-д ефрагментация и увеличение размера файловой системы;

комплексные алгоритмы пред варительного чтения метад анных.

Несмотря на то что размер XFS может исчисляться эксабайтами, Red Hat под д ерживает максимум 100 Т Б (см. Разд ел 7.3.2, «XFS»).

Размер загрузочных д исков Обычно BIOS под д ерживает д иски размером д о 2.2 Т Б. Системы Red Hat Enterprise Linux 6, использующие BIOS, могут под д ерживать д иски большего размера за счет использования глобальной таблицы разделов. Исключение составляют загрузочные д иски — их размер не может превышать 2.2 Т Б. Д ело в том, что BIOS изначально созд авалась д ля IBM и, несмотря на то что она постепенно развивалась, UEFI (Unified Extensible Firmware Interface) лучше приспособлен д ля под д ержки нового оборуд ования.

Red Hat Enterprise Linux 6 под д ерживает UEFI, который может использоваться вместо BIOS. Т акая схема д опускает работу с разд елами размером больше 2.2 Т Б (включая загрузочные).

–  –  –

Конфигурация загрузки UEFI и BIOS может значительно отличаться, поэтому при загрузке установленной системы д олжны использоваться те же микропрограммы что и при установке. Т о есть нельзя выполнить установку в системе с BIOS и загрузить эту установку в системе с UEFI.

Red Hat Enterprise Linux 6 под д ерживает UEFI 2.2. Если оборуд ование под д ерживает UEFI 2.3, проблем с загрузкой Red Hat Enterprise Linux 6 не буд ет, но возможности новой версии буд ут нед оступны. http://www.uefi.org/specs/agreement/ сод ержит под робную информацию о спецификациях UEFI.

–  –  –

Red Hat Enterprise Linux 6 Оптимизация производ итель ности Глава 3. Анализ производительности В этой главе рассматриваются утилиты мониторинга и анализа производ ительности системы и приложений, а также примеры их использования. Полученная с их помощью статистика поможет обнаружить слабые места в системе, снижающие производ ительность.

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

proc также сод ержит информацию об оборуд овании и текущих процессах. Большинство файлов в этом каталоге д оступно только д ля чтения, но некоторые (в /proc/sys) могут быть изменены.

За д альнейшей информацией обратитесь к руководству по развертыванию по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

3.2. Системные мониторы GNOME и KDE GNOME и KDE пред оставляют собственные программы д ля мониторинга производ ительности систем.

GNOME Системный монитор GNOME возвращает информацию о системе и использовании ресурсов.

Чтобы его открыть, выполните команд у gnom e-system -m onitor или в главном меню системы выберите Приложения Системные Системный монитор.

Вклад ки программы:

–  –  –

Проц ессы Список активных процессов и их статус. Выбранные процессы могут быть остановлены, запущены, завершены, или можно изменить их приоритет.

Ресурсы Д иаграммы использования процессора, памяти, пространства под качки и сети.

Файловые системы Список файловых систем, включая их тип, каталог под ключения, размер свобод ного и занятого пространства.

Под робную информацию о системном мониторе GNOME можно найти в его разд еле справки или в руководстве по развертыванию по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

KDE

–  –  –

Системный монитор KDE позволяет наблюд ать за нагрузкой системы и состоянием процессов. Чтобы его открыть, выполните команд у ksysguard или в главном меню выберите Приложения Система Системный монитор.

Вклад ки системного монитора KDE:

Т аблиц а проц ессов

Список процессов в алфавитном поряд ке. Можно их отсортировать по д ругим критериям:

по занятости процессора, памяти, влад ельцу или приоритету. Полученные результаты можно д ополнительно отфильтровать.

Загрузка системы Д иаграмма использования ресурсов процессора, памяти, пространства под качки и сети.

Навед ите курсор на интересующий график д ля получения под робной информации.

За более под робной информацией обратитесь к справке программы.

3.3. Команды мониторинга Red Hat Enterprise Linux также включает текстовые утилиты мониторинга производ ительности. Их преимущество состоит в том, что они могут работать за пред елами уровня выполнения 5.

top top показывает изменения статистики системы и активности процессов в реальном времени.

Формат результатов можно настроить с сохранением настроек после перезагрузки.

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

Под робную информацию о top можно найти на справочной странице m an top.

ps ps возвращает снимок состояния работающих процессов.

ps возвращает более под робную статистику чем top, но не обновляет ее д инамически.

Под робную информацию можно найти на справочной странице m an ps.

vm stat vmstat позволяет получить под робную информацию об активности процессов, памяти, процессора, ввод а-вывод а устройств и пр.

Получаемые с помощью vmstat отчеты тоже изменяются д инамически, но не так часто как top.

Под робную информацию можно найти на справочной странице m an vm stat.

sar sar возвращает информацию об активности системы на текущий д ень. Станд артный формат включает статистику использования процессора через кажд ые 10 минут.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности

–  –  –

sar под ход ит д ля генерации отчетов с зад анным интервалом.

Под робную информацию можно найти на справочной странице m an sar.

3.4. Tuned и ktune tuned отслеживает занятость системных компонентов и д инамически изменяет настройки системы исход я из полученной информации. Т ак, система сможет своевременно реагировать на изменение нагрузки, увеличивая производ ительность активных устройств и снижая энергопотребление неактивных.

ktune в комбинации с tuned-adm пред оставляет целый набор профилей д ля под д ержки производ ительности и уменьшения энергопотребления. Их можно использовать готовыми или ад аптировать исход я из требований окружения.

Профили tuned-adm:

default Станд артный профиль энергосбережения. Включает мод ули д ля процессора и д исков.

latency-performance Профиль д ля корректирования зад ержки ответа сервера. Отключает механизмы tuned и ktune, изменяет режим cpuspeed на perform ance. Д ля контроля д искового ввод авывод а используется планировщик deadline. В качестве обязательного значения cpu_dm a_latency регистрируется 0.

throughput-performance Профиль д ля коррекции производ ительности обработки д анных. Рекоменд уется при отсутствии д оступа к большому хранилищу д анных.

Эквивалентно latencyperform ance за исключением:

Минимальный интервал kernel.sched_min_granularity_ns равен 10 миллисекунд ам.

Значение kernel.sched_wakeup_granularity_ns (пред варительная активация) равно 15 миллисекунд ам.

Значение vm.dirty_ratio равно 40%.

Включены возможности прозрачного использования страниц большого размера.

enterprise-storage Этот профиль рекоменд уется д ля конфигурации пространства д анных д ля крупных серверов уровня пред приятия, что включает защиту кэша за счет переключения на питание от батареи и управление кэшем на д иске. Аналогичен профилю throughputperform ance за исключением того, что повторное монтирование систем осуществляется с параметром barrier=0.

Глава 4. Процессор

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

Аналогичен профилю throughputperform ance за исключением след ующих факторов:

значение readahead равно 4 x, файловые системы, которые не являются корневыми и загрузочными, монтируются с параметром barrier=0.

virtual-host virtual-host основан на профиле enterprise-storage. Он уменьшает объем под качки виртуальной памяти и д опускает более агрессивный под ход к записи «грязных» страниц.

Этот профиль д оступен в Red Hat Enterprise Linux 6.3 и рекоменд уется д ля хостов виртуализации, включая KVM и Red Hat Enterprise Virtualization.

За д альнейшей информацией обратитесь к руководству по управлению энергопотреблением по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

3.5. Профилирование приложений Профилирование — сбор информации о выполнении программы с целью опред еления способов оптимизации ее быстрод ействия, уменьшения использования памяти и т.п. Сред ства профилирования приложений упрощают этот процесс.

Red Hat Enterprise Linux 6 пред оставляет три инструмента профилирования: SystemT ap, OProfile, Valgrind. Их д етальное изучение выход ит за рамки этого руковод ства, поэтому д алее привед ена лишь обзорная информация.

3.5.1. SystemT ap SystemT ap пред назначен д ля мониторинга операционной системы и яд ра. Полученная статистика аналогична вывод у netstat, ps, top, iostat, но SystemT ap д ополнительно пред оставляет функции д ля анализа и фильтрации полученных д анных.

SystemT ap позволяет точно опред елить слабые места в работе системы и приложений.

На основе SystemT ap построен д ополнительный мод уль Function Callgraph д ля Eclipse, отвечающий за сбор статистики о состоянии программ, включая свед ения о вызовах функций, их результатах, времени выполнения, переменных пространства пользователя.

За д альнейшей информацией обратитесь к д окументу под названием Введение в SystemTap по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

3.5.2. OProfile oprofile пред ставляет собой утилиту мониторинга производ ительности систем Linux и использует собственные функции процессора д ля сбора статистики яд ра и системы, что включает обращение к памяти, число запросов к кэшу L2 и полученных прерываний. OProfile может опред елить степень занятости процессора и ид ентифицировать процессы, которые чаще всего к нему обращаются.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности OProfile может использоваться в Eclipse в вид е д ополнительного мод уля Eclipse OProfile, что позволяет с легкостью опред елить наиболее ресурсоемкие фрагменты код а и выполнять функции OProfile из команд ной строки.

Ограничения OProfile включают:

Т очность статистики не является стопроцентной, так анализ мог быть начат не с инструкции, вызвавшей прерывание, а с сосед ней.

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

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

За д альнейшей информацией обратитесь к руководству развертыванию на сайте http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ и к д окументации oprofile в /usr/share/doc/oprofile-версия.

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

Valgrind анализирует работу приложения, выполняя его не на основном процессоре, а на его симуляторе, точно опред еляет зад ействованные процессы и отправляет собранную статистику в зад анный файл или сетевой сокет. Время работы Valgrind зависит от используемых инструментов, но обычно занимает в 4-50 раз д ольше по сравнению с выполнением код а напрямую.

Valgrind может выполняться и без перекомпиляции приложения, но при компиляции можно включить отлад очную информацию, что значительно облегчит поиск проблем в код е.

В Red Hat Enterprise Linux 6.4 д ля повышения эффективности отлад ки в Valgrind был д обавлен отлад чик gdb.

За д альнейшей информацией о Valgrind обратитесь к руководству по развертыванию по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ или к справочной странице

m an valgrind. Д ополнительная д окументация:

/usr/share/doc/valgrind-версия/valgrind_m anual.pdf /usr/share/doc/valgrind-версия/htm l/index.htm l Разд ел 5.3, «Профилирование памяти при помощи Valgrind» сод ержит д альнейшую информацию.

3.5.4. Perf perf пред оставляет набор счетчиков, с помощью которых пользователь может оценить результаты выполнения команд в системе.

perf stat Сбор станд артной статистики системных событий, включая свед ения об инструкциях и временных циклах. Флаги помогут получить информацию о д ополнительных событиях. В Red Hat Enterprise Linux 6.4 команд а perf stat стала работать с контрольными

–  –  –

группами. Под робную информацию можно найти на справочной странице m an perfstat.

perf record Осуществляет сбор д анных и сохраняет их в файл, анализ которого может быть выполнен с помощью perf report. Под робную информацию можно найти на справочной странице m an perf-record.

perf report Получает свед ения о производ ительности из файла и формирует отчет. Под робную информацию можно найти на справочной странице m an perf-report.

perf list Возвращает список д оступных событий. События могут отличаться в зависимости от оборуд ования мониторинга и конфигурации системы. Под робную информацию можно найти на справочной странице m an perf-list.

perf top Осуществляет сбор статистики в реальном времени аналогично top. Под робную информацию можно найти на справочной странице m an perf-top.

За д альнейшей информацией обратитесь к руководству по управлению ресурсами по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

3.6. Red Hat Enterprise MRG Red Hat Enterprise MRG Realtime включает инструмент T una д ля изменения настраиваемых параметров системы. T una изначально разрабатывался д ля работы в окружении Realtime, но может использоваться и д ля настройки станд артных систем Red Hat Enterprise Linux.

T una управляет след ующими характеристиками:

настройки питания, прерываний и обнаружения ошибок в BIOS;

сетевые параметры, включая использование T CP и объед инение прерываний;

вед ение журналов в файловых системах с журналированием;

системное журналирование;

опред еляет процессоры, которые буд ут обрабатывать прерывания и пользовательские процессы;

использование пространства под качки;

обработка исключений нехватки памяти.

За д альнейшей информацией обратитесь к руководству пользователя Tuna и руководству по настройке Realtime по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_MRG/.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности Глава 4. Процессор Современные компьютеры могут быть оборуд ованы несколькими процессорами, которые пред ставляют собой интегральные схемы, вставляемые в специальный разъем (сокет) материнской платы. Сокет соед иняется с д ругими сокетами, контроллерами памяти и д ругими периферийными устройствами. С точки зрения операционной системы сокет логически объед иняет процессоры и их ресурсы.

Red Hat Enterprise Linux включает множество инструментов д ля отслеживания активности процессора. Полученная информация помогает разработать стратегию оптимизации производ ительности (см. Разд ел 4.1.2, «Коррекция производ ительности процессора»).

Топология Раньше компьютеры были оборуд ованы меньшим числом процессоров, что д опускало использование симметричной многопроцессорной схемы д оступа к памяти (SMP, Symmetric MultiProcessor). Со временем число процессоров на сокет увеличивалось, и стоимость такой схемы значительно возросла. На сегод няшний д ень многопроцессорные системы используют неравномерный д оступ к памяти (NUMA, Non-Uniform Memory Access).

Процессоры AMD уже раньше имели такую инфраструктуру за счет технологии HT (Hyper Transport), в то время как Intel начал внед рять возможности NUMA в схемы QPI (Quick Path Interconnect). Конфигурация SMP и NUMA отличается, так как при выд елении ресурсов д олжна учитываться топология системы.

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

Планирование обработки потоков на свобод ных процессорах осуществляется на уровне операционной системы.

Операционная система распред еляет нагрузку межд у процессорными яд рами, тем самым стараясь максимизировать занятость процессора, но это не означает, что производ ительность приложений также улучшится. Например, перенос потока на процессор в д ругой сокет вместо того, чтобы д ожд аться освобожд ения текущего процессора, только замед лит работу. Это след ует учесть при проектировании высокопроизвод ительных приложений (см. Разд ел 4.2, «Планирование занятости процессоров»).

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

В этой главе буд ет рассказано, как повысить эффективность обработки прерываний.

4.1. Топология процессоров 4.1.1. Т опология NUMA Изначально компьютеры были оборуд ованы од ним процессором. Иллюзия параллельных вычислений созд авалась на уровне операционной системы за счет переключения потоков.

–  –  –

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

Ранние многопроцессорные системы использовали параллельную шину д ля соед инения процессора с памятью, выд еляя од инаковые сегменты времени д ля д оступа к памяти. Это носит название симметричной многопроцессорности и под ход ит д ля небольшого числа процессоров.

Но при увеличении числа процессоров д о 8-16 требования к полосе пропускания существенно возрастают, что оставляет меньше места д ля периферийных компонентов.

Увеличение числа процессоров возможно за счет объед инения след ующих компонентов:

1. Послед овательные шины.

2. Т опологии NUMA.

Послед овательные шины характеризуются высокой скоростью перед ачи пакетов д анных.

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

Т еперь од на шина может объед инять 32-64 соед инений, что существенно сокращает место на плате.

Со временем вместо под ключения отд ельных процессоров к плате разработчики стали объед инять яд ра процессоров в од ин мод уль, а вместо пред оставления равноправного д оступа к памяти была разработана стратегия неравномерного д оступа (NUMA, Non-Uniform Memory Access). В этой схеме реализации компьютерной памяти кажд ому сокету выд еляется отд ельный сегмент памяти д ля высокоскоростного д оступа. Д ополнительно сокеты соед инены д руг с д ругом, что позволяет им обращаться к памяти д ругих сокетов.

В качестве простого примера рассмотрим плату с д вумя сокетами, в кажд ый из которых под ключен 4-яд ерный процессорный мод уль. Т аким образом, общее число процессоров составляет 8. Кажд ый сокет соед инен с мод улем памяти размером 4 ГБ, то есть общий объем ОЗУ составляет 8 ГБ. Пред ставим, что процессоры 0-3 размещены в сокете 0, а 4-7 в сокете 1.

Д ополнительно кажд ый сокет сопоставлен отд ельному узлу NUMA.

Д ля д оступа процессора c номером 0 к памяти из банка 0 требуется 3 такта: од ин такт д ля перед ачи ад реса контроллеру памяти, второй д ля установки д оступа к памяти, третий — д ля выполнения операции записи или чтения. В то же время д ля д оступа процессора 4 потребуется 6 тактов, так как он расположен в д ругом сокете, что д обавляет д ве операции — обращение к контроллеру локальной памяти в сокете 1 и обращение к контроллеру уд аленной памяти в сокете

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

Послед ние мод ели процессоров Intel (Xeon) и AMD (Opteron) используют функции NUMA. Роль межпроцессорной шины д ля процессоров AMD выполняет HyperT ransport (HT ), а д ля Intel — QuickPath Interconnect (QPI).

Т ак как системные архитектуры могут значительно отличаться, точно пред сказать снижение производ ительности вслед ствие обращения к памяти в д ругих сокетах д овольно сложно. Кажд ое межпроцессорное соед инение увеличивает зад ержку. Т ак, если д ля д оступа к памяти над о осуществить д ва переход а по шине, формула расчета времени д оступа буд ет выгляд еть так: 2N + время доступа к памяти (гд е N — время зад ержки при под ключении к шине).

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

Red Hat Enterprise Linux 6 Оптимизация производ итель ности

Д ля этого при проектировании приложений над о ответить на след ующие вопросы:

1. Какова топология системы?

2. Гд е выполняется приложение?

3. Гд е размещен ближайший банк памяти?

4.1.2. Коррекц ия производ ительности проц ессора В этой секции рассматриваются способы коррекции производ ительности процессора.

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

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

Рисунок 4.1, «Локальный и уд аленный д оступ к памяти» д емонстрирует д ва узла NUMA.

Кажд ый узел включает 4 процессора, контроллер и банк памяти.

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

1. Процессор (яд ро 0-3) перед ает ад рес памяти локальному контроллеру.

2. Контроллер устанавливает д оступ к памяти.

3. Процессор выполняет операции чтения и записи в область памяти с зад анным ад ресом.

Рисунок 4.1.

Локальный и уд аленный д оступ к памяти

–  –  –

Если процессор на од ном узле обращается к банку памяти на д ругом узле, цикл выполнения буд ет таким:

1. Процессор (яд ро 0-3) перед ает ад рес памяти уд аленному контроллеру.

a. Уд аленный контроллер памяти получает запрос д оступа.

2. Контроллер устанавливает д оступ к локальному банку памяти.

3. Процессор выполняет операции чтения и записи область памяти с зад анным ад ресом.

Т аким образом, обращение к уд аленной памяти может занять почти в д ва раза больше времени.

При проектировании высокопроизвод ительных приложений такие соед инения след ует минимизировать.

При этом след ует учитывать:

топологию системы (схему связи компонентов);

процессорное яд ро, на котором запускается программа;

расположение банка памяти.

Red Hat Enterprise Linux 6 пред оставляет инструменты д ля коррекции производ ительности систем NUMA. Они буд ут рассмотрены ниже.

4.1.2.1. taskset taskset позволяет привязать процесс к опред еленному процессору. Нед остаток состоит в том, что taskset не гарантирует выд еление локальной памяти. Эту функцию успешно выполняет numactl (см. Разд ел 4.1.2.2, «numactl»).

Процессоры опред еляются с помощью маски. Минимальное значение соответствует первому процессору, максимальное — послед нему. Например, 0x00000001 может обозначать процессор с номером 0, а 0x00000003 — процессоры 0 и 1.

Ниже привед ена команд а привязки работающего процесса к процессору, зад анному с помощью маски.

# taskset -p маска PID След ующая команд а привяжет зад анную программу к процессору. Значение программа может сод ержать ее имя и аргументы.

# taskset маска -- программа

Аргумент -c позволяет опред елить список или д иапазон процессоров:

# taskset -c 0,5,7-9 -- myprogram Под робную информацию можно найти на справочной странице m an taskset.

4.1.2.2. numactl num actl выполняет процессы в соответствии с политикой распред еления памяти. Политика опред еляет правила д ля зад анного процесса и его д очерних процессов. num actl получает топологию системы из /sys.

Файловая система /sys сод ержит схему соед инения процессоров, памяти и периферийных Red Hat Enterprise Linux 6 Оптимизация производ итель ности устройств. Т ак, например, /sys/devices/system /cpu сод ержит информацию о процессорах, а /sys/devices/system /node — об узлах NUMA и их взаимном расположении.

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

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

numactl позволяет привязать приложение к од ному процессорному яд ру или узлу NUMA и выд елить локальную память.

Д оступные параметры включают:

--show Возвращает настройки правил NUMA д ля текущего процесса. Пример: num actl --show.

–  –  –

--membind Выд еляет память только на зад анных узлах. Если памяти нед остаточно, команд а вернет ошибку. Формат: num actl --m em bind=список_узлов программа. Список узлов может сод ержать разд еленные запятой номера узлов и д иапазоны. Под робную информацию можно найти на справочной странице m an num actl.

--cpunodebind Выполнение программы и д очерних процессов на процессорах, принад лежащих указанным узлам. Формат: num actl --cpunodebind=список_узлов программа. Список узлов сод ержит разд еленные запятой номера узлов и д иапазоны. Под робную информацию можно найти на справочной странице m an num actl.

--physcpubind

Выполнение программы и д очерних процессов на указанных процессорах. Формат:

num actl --physcpubind=список_процессоров программа. Список сод ержит разд еленные запятой номера процессоров (номера можно получить из /proc/cpuinfo.) Под робную информацию можно найти на справочной странице m an num actl.

–  –  –

Если возможно, память буд ет выд еляться на зад анном узле. В случае неуд ачи буд ут выбираться д ругие узлы. Формат: num actl --preferred=номер_узла. Под робную информацию можно найти на справочной странице m an num actl.

Пакет numactl включает в свой состав библиотеку libnuma, которая пред оставляет интерфейс д ля созд ания собственной политики NUMA. За под робной информацией обратитесь к справочной странице m an num a(3).

4.1.3. numastat

–  –  –

numastat был разработан Энд и Клином и изначально пред ставлял собой сценарий Perl.

Впослед ствии он был существенно д оработан и д обавлен в Red Hat Enterprise Linux 6.4.

Несмотря на то что утилита num astat полностью совместима со своей ранней версией, их параметры и результаты работы могут значительно отличаться.

numastat вывод ит статистику распред еления памяти (включая попад ание и промахи) д ля процессов и операционной системы. По умолчанию num astat покажет число занятых страниц памяти и список событий д ля кажд ого узла NUMA.

Оптимальная производ ительность характеризуется низкими значениями num a_m iss и num a_foreign.

numastat также возвращает информацию о распред елении памяти межд у узлами NUMA.

Можно сопоставить результаты numastat и top, чтобы убед иться, что потоки выполняются на тех же узлах, гд е была выд елена память.

Станд артная статистика numa_hit Число успешно выд еленных страниц на узле.

numa_miss Число страниц, которые д олжны были быть выд елены на д ругом узле, но из-за нехватки памяти были выд елены на текущем узле. Кажд ому событию num a_m iss соответствует событие num a_foreign на д ругом узле.

numa_foreign Число страниц, выд еленных на д ругом узле, которые изначально были пред назначены д ля текущего узла. Кажд ому событию num a_foreign соответствует событие num a_m iss на д ругом узле.

interleave_hit Число успешно выд еленных страниц с использованием черед ования.

local_node Red Hat Enterprise Linux 6 Оптимизация производ итель ности Число успешно выд еленных страниц памяти д ля локального процесса.

other_node Число страниц, выд еленных на этом узле процессу, выполняемому на д ругом узле.

Д алее перечислены параметры, которые в качестве ед иниц измерения используют мегабайты.

-c Компактное пред ставление таблицы д анных. Обычно используется при наличии большого числа узлов NUMA, од нако ширину столбцов и расстояние межд у ними пред сказать невозможно. Размер памяти буд ет округляться д о ближайшего мегабайта.

-m Возвращает статистику памяти д ля кажд ого узла. Формат аналогичен /proc/m em info.

-n Возвращает ту же информацию что и исход ная версия num astat (numa_hit, numa_miss, numa_foreign, interleave_hit, local_node, other_node) в обновленном формате с использованием мегабайт в качестве ед иниц измерения.

-p шаблон Возвращает информацию о распред елении памяти в соответствии с зад анным шаблоном. Если шаблон сод ержит цифры, numastat интерпретирует их как ид ентификатор процесса. В противном случае numastat буд ет искать совпад ение в строках команд.

–  –  –

Исключает строки и столбцы с нулевыми значениями. При этом значения, которые округляются д о нуля, не буд ут отфильтрованы.

4.1.4. numad numad — сред ство д ля привязки процессов к процессорам исход я из топологии NUMA. numad след ит за топологией и д инамически под страивается к изменениям конфигурации, тем самым под д ерживая д олжный уровень производ ительности.

В некоторых случаях numad может улучшить производ ительность д о 50%. numad период ически запрашивает информацию из /proc и пытается поместить критические процессы на узлы со свобод ными ресурсами, гд е производ ительность буд ет максимальна. Минимальные требования составляют 50% ресурсов од ного процессора и 300 МБ памяти. Необход имый уровень производ ительности под д ерживается за счет переноса процессов межд у узлами NUMA по мере освобожд ения их ресурсов.

numad также пред оставляет рекоменд ации, которые могут использоваться д ругими инструментами управления зад ачами. За более под робной информацией обратитесь к описанию параметра -w на справочной странице m an num ad.

4.1.4.1. Д остоинства numad numad особенно под ход ит д ля прод олжительных ресурсоемких процессов, особенно если область их выполнения ограничена лишь под множеством ресурсов.

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

Д ля коротких процессов, не потребляющих много ресурсов, numad не требуется — так же как и д ля систем с непослед овательным обращением к памяти.

4.1.4.2. Режимы работы

–  –  –

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

numad может работать как:

служба, исполняемый мод уль.

4.1.4.2.1. numad как служба Работающая служба numad буд ет д инамически корректировать нагрузку.

Запуск службы:

# service numad start

Чтобы запуск происход ил при кажд ой загрузке системы:

Red Hat Enterprise Linux 6 Оптимизация производ итель ности # chkconfig numad on 4.1.4.2.2. numad как исполняемый мод уль

Команд а запуска:

# numad numad буд ет работать, пока он не буд ет остановлен. События буд ут регистрироваться в /var/log/num ad.log.

Д ля управления конкретным процессом выполните:

–  –  –

-p PID Д обавляет зад анный процесс в список обработки. Д обавленный процесс буд ет обработан, только если он уд овлетворяет минимальным требованиям обслуживания.

-S режим Параметр -S опред еляет режим проверки процессов. Т ак, значение 0 ограничивает управление процессами, включенными в список обработки.

Остановка numad:

–  –  –

После остановки numad изменения сопоставлений NUMA не буд ут отменены. При значительном изменении нагрузки numad д инамически перераспред елит ресурсы.

Под робную информацию о numad можно найти на справочной странице m an num ad.

4.2. Планирование занятости процессоров Планировщик распред еляет нагрузку межд у процессорами в соответствии с существующими правилами, под д ерживая их максимальную занятость. Правила опред еляют время выполнения потока на од ном процессорном яд ре.

Политики планирования под разд еляются на д ве категории:

–  –  –

Планирование выполнения потоков реального времени выполняется в первую очеред ь.

Эти правила применяются к критическим процессам, которые д олжны завершены как можно быстрее.

SCHED_FIFO Это правило присваивает потокам фиксированный приоритет от 1 д о 99. Планировщик проверяет список потоков SCHED_FIFO и запускает поток с наивысшим приоритетом.

Поток буд ет выполняться д о тех пор, пока не завершит работу или не буд ет вытеснен д ругим потоком с более высоким приоритетом.

Д аже потоки с наименьшим приоритетом буд ут выполняться д о потоков д ругих типов.

При наличии ед инственного потока, работающего в реальном времени, значение SCHED_FIFO буд ет игнорироваться.

SCHED_RR Это циклический вариант правила SCHED_FIFO. Потокам также присваивается приоритет от 1 д о 99, и потоки с од инаковым приоритетом буд ут послед овательно выполняться в рамках выд еленного интервала. Пользователь не может изменить интервал, но может его узнать при помощи sched_rr_get_interval(2). Обычно это правило применяется при наличии потоков с од инаковым приоритетом.

Под робную информацию о планировании выполнения потоков можно найти в описании станд арта IEEE 1003.1 POSIX по ад ресу http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_08.html.

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

В яд ре Linux правило SCHED_FIFO также пред усматривает механизм ограничения, который пред отвращает монопольное использование процессорных ресурсов.

Его конфигурацию можно изменить с помощью:

/proc/sys/kernel/sched_rt_period_us Интервал времени в микросекунд ах, характеризующий 100% полосы пропускания. По умолчанию равен 1000000 мкс (1 сек.).

/proc/sys/kernel/sched_rt_runtim e_us Интервал выполнения потоков реального времени (в микросекунд ах). По умолчанию равен 950000 мкс, что эквивалентно 0.95 сек.

4.2.2. Станд артное планирование Станд артные правила включают SCHED_OT HER, SCHED_BAT CH и SCHED_IDLE. При этом SCHED_BAT CH и SCHED_IDLE пред назначены д ля зад ач с низким приоритетом и под робно Red Hat Enterprise Linux 6 Оптимизация производ итель ности рассматриваться не буд ут.

SCHED_OT HER или SCHED_NORMAL Используется по умолчанию. Распред еление ресурсов осуществляется при помощи планировщика CFS (Completely Fair Scheduler), который приоритизирует потоки в зависимости от значения niceness (более под робно об этом рассказывается в руководстве по развертыванию). Несмотря на то что пользователь в опред еленной мере может управлять приоритетом, его д инамическое изменение возможно только при помощи CFS.

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

При обработке больших объемов потоков пропускная способность (число операций в секунд у) имеет огромное значение, поэтому можно выбрать SCHED_OT HER и позволить системе управлять процессорными ресурсами самостоятельно.

Если необход имо сократить время ответа, след ует выбрать SCHED_FIFO. При обработке небольшого числа потоков оптимальной производ ительности можно д остичь, выд елив д ля их обслуживания отд ельный узел NUMA.

4.3. Обработка запросов прерываний Прерывание — запрос обслуживания на аппаратном уровне. Прерывания могут генерироваться локальным оборуд ованием или поступать по шине в вид е пакета д анных (MSI, Message Signaled Interrupt).

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

/proc/interrupts сод ержит статистику прерываний: номер прерывания, число прерываний этого типа, полученных кажд ым процессорным яд ром, тип прерывания и список д райверов, обрабатывающих это прерывание. Под робную информацию можно найти на справочной странице m an 5 proc.

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

Значение smp_affinity опред еляется в /proc/irq/номер_прерывания/sm p_affinity в шестнад цатеричном формате. Д ля его просмотра и изменения необход имы права root.

В качестве примера рассмотрим прерывание д райвера Ethernet на сервере с четырьмя процессорными яд рами.

Д ля начала над о узнать его номер прерывания:

–  –  –

Т еперь можно просмотреть сод ержимое файла smp_affinity:

# cat /proc/irq/32/smp_affinity f f означает, что прерывание может обслуживаться на любом процессоре. Ниже этому параметру буд ет присвоено значение 1, то есть прерывание буд ет обслуживаться на процессоре 0.

# echo 1 /proc/irq/32/smp_affinity # cat /proc/irq/32/smp_affinity Можно указать несколько значений, разд елив их запятыми. Обычно используется в системах, гд е число яд ер превышает 32. Т ак, например, ниже обслуживание прерывания 40 разрешается на всех яд рах в 64-яд ерной системе:

# cat /proc/irq/40/smp_affinity ffffffff,ffffffff Пример значения smp_affinity, ограничивающий обслуживание прерывания 40 послед ними 32 яд рами в 64-яд ерной системе:

# echo 0xffffffff,00000000 /proc/irq/40/smp_affinity # cat /proc/irq/40/smp_affinity ffffffff,00000000

–  –  –

В системах, под д ерживающих управление линией запросов прерывания, управление может быть перед ано оборуд ованию.

4.4. NUMA в Red Hat Enterprise Linux 6 Red Hat Enterprise Linux 6 включает целый ряд улучшений работы с NUMA, облегчающих ад аптацию к изменяющимся требованиям оборуд ования.

4.4.1. Масштабирование 4.4.1.1. Т опология Ниже перечислены функции, помогающие Red Hat Enterprise Linux ид ентифицировать оборуд ование и архитектуру, тем самым облегчая оптимизацию производ ительности на низком уровне.

Опред еление топологии во время загрузки Получение информации об оборуд овании, включая свед ения о логических процессорах, гиперпотоках, яд рах, сокетах, узлах NUMA и времени сообщения межд у узлами.

Планировщик CFS Новый режим планирования обеспечивает равномерное распред еление процессорных ресурсов. В комбинации с опред елением топологии это позволяет планировать Red Hat Enterprise Linux 6 Оптимизация производ итель ности выполнение процессов на яд рах в пред елах од ного сокета, исключая необход имость обращения к д ругим сокетам и сохраняя сод ержимое кэша.

m alloc m alloc теперь оптимизирует выд еление памяти, пред почитая выбирать фрагменты, расположенные как можно ближе к яд ру, на котором выполняется процесс.

Выд еление памяти буферу skbuff Т акже оптимизирует выд еление памяти, пред почитая выбирать фрагменты, расположенные как можно ближе к яд ру, обслуживающему прерывания.

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

4.4.1.2. Синхронизац ия в многопроц ессорном окружении Коорд инация обработки зад ач межд у процессорами требует частых проверок с целью под д ержки целостности д анных. Red Hat Enterprise Linux включает след ующие функции д ля оптимизации производ ительности в этой области:

Блокировка RCU (Read-Copy-Update) Обычно приблизительно 90% блокировок обслуживают операции чтения. Блокировка RCU исключает необход имость получения эксклюзивного д оступа д ля чтения. Этот режим используется при выд елении страниц из кэша.

Алгоритмы распред еления памяти проц ессоров и сокетов Многие алгоритмы были обновлены и позволяют точно коорд инировать работу процессорных яд ер в од ном сокете. Вместо спин-блокировок теперь используются метод ы инд ивид уального блокирования сокетов, а обновленные карты выд еления памяти и списки страниц позволяют более эффективно использовать структуры карт д анных.

4.4.2. Виртуализац ия Т ак как KVM использует функции яд ра, производ ительность виртуальных машин KVM напрямую зависит от его оптимизации и может д остигать уровня производ ительности физических систем.

Это возможно за счет оптимизации сетевого д оступа и ввод а-вывод а. Ниже перечислены улучшения, имеющие прямое отношение к NUMA.

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

Большие страниц ы T HP Использование больших страниц (Hugepages) позволяет сократить конкуренцию

–  –  –

блокировок и уменьшить число операций управления памятью в буфере трансляции ад ресов (T LB, T ranslation Lookaside Buffer), что может повысить производ ительность виртуальных машин на 20%.

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

Red Hat Enterprise Linux 6 Оптимизация производ итель ности Глава 5. Память Эта глава сод ержит обзор функций управления памятью в Red Hat Enterprise Linux и способов оптимизации использования памяти.

5.1. HugeTLB Преобразование физических ад ресов памяти в виртуальные осуществляется на основе соответствий в таблице страниц. Буфер T LB (T ranslation Lookaside Buffer) пред ставляет собой кэш, в котором хранятся послед ние полученные ад реса, что улучшает быстрод ействие за счет уменьшения числа обращений к таблице.

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

Буфер HugeT LB (Huge T ranslation Lookaside Buffer) использует страницы большого размера, что позволяет кэшировать больше ад ресов за раз, тем самым уменьшая вероятность промахов и увеличивая производ ительность приложений.

Под робную информацию о HugeT LB можно найти в /usr/share/doc/kerneldoc-версия/Docum entation/vm /hugetlbpage.txt

5.2. Увеличение размера страниц Станд артный размер страницы памяти — 4096 байт. Т аким образом 1 мегабайт сод ержит 256 страниц, 1 гигабайт — 256 тысяч страниц и т.п. Процессоры включают встроенный модуль управления памятью, который сод ержит полный список страниц, кажд ой из которых соответствует запись в таблице.

Существует д ва основных способа управления большими объемами памяти:

увеличение числа записей в мод уле управления памятью;

увеличение размера страниц.

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

Red Hat Enterprise Linux 6 использует второй метод.

Т ак называемые большие страницы (hugepages) пред ставляют собой сегменты памяти размером 2 МБ или 1 ГБ. Первый размер под ход ит д ля управления гигабайтами памяти, а второй — терабайтами.

Страницы большого размера д олжны быть назначены во время загрузки. Управлять ими вручную не рекоменд уется, но д ля эффективной работы они могут требовать значительной мод ификации код а. С этой зад ачей можно успешно справиться с помощью так называемых «прозрачных страниц» (T HP, transparent huge pages). T HP д обавляет д ополнительный уровень абстракции,

–  –  –

облегчающий и автоматизирующий управление большими страницами.

T HP скрывает комплексную функциональность страниц от ад министраторов и разработчиков.

Функции T HP тщательно тестировались и оптимизировались разработчиками сообщества и самой компании Red Hat д ля разных приложений, уровней нагрузки, конфигураций и архитектур.

Поэтому станд артной конфигурации T HP обычно д олжно быть д остаточно.

В настоящее время возможности T HP под д ерживаются только д ля анонимной памяти кучи и стека.

5.3. Профилирование памяти при помощи Valgrind Valgrind пред оставляет инструменты д ля профилирования и анализа производ ительности программ. В этой главе буд ут рассмотрены инструменты, которые помогут обнаружить попытки использования неинициализированной памяти и неверного выд еления памяти. Д ля запуска отд ельной утилиты выполните:

valgrind --tool=утилита программа В этой команд е утилита — название утилиты. Т ак, д ля профилирования памяти можно указать m em check, m assif, cachegrind. След ом за утилитой введ ите имя анализируемой программы.

В режиме д иагностики программа выполняется намного мед леннее.

Разд ел 3.5.

3, «Valgrind» сод ержит описание основных функций.

Более под робную информацию, включая описание д ополнительных мод улей Eclipse, можно найти в руководстве по развертыванию по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/, на справочной странице m an valgrind, а также в файлах:

/usr/share/doc/valgrind-версия/valgrind_m anual.pdf /usr/share/doc/valgrind-версия/htm l/index.htm l.

5.3.1. Memcheck Если команд а valgrind не сод ержит параметр --tool, по умолчанию буд ет выбрана утилита m em check. Memcheck поможет обнаружить те ошибки, которые д ругие инструменты не могут д иагностировать, включая использование неопред еленных и неинициализированных значений, некорректное освобожд ение памяти кучи, пересечение указателей и утечки памяти. Во время д иагностики программы буд ут работать в 10-30 раз мед леннее.

Memcheck возвращает код ы обнаруженных ошибок. Их описание можно найти в /usr/share/doc/valgrind-version/valgrind_m anual.pdf.

Memcheck только сообщает об ошибках, но не препятствует их появлению. Т ак, если обращение программы к памяти привод ит к сегментации, Memcheck сообщит об ошибке, но не остановит сегментацию.

Параметры Memcheck включают:

--leak-check Поиск утечек памяти после завершения программы клиента. По умолчанию имеет значение sum m ary и возвращает число обнаруженных утечек. Д ругие значения включают yes и full, и возвращают информацию об инд ивид уальных утечках, а no отключает проверку.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности

--undef-value-errors yes включает сообщения об ошибках д ля неинициализированных значений, а no их отключает.

--ignore-ranges Игнорируемые д иапазоны. Пример:

--ignore-ranges=0xPP-0xQQ,0xRR-0xSS.

Полный список параметров можно найти в /usr/share/doc/valgrind-версия/valgrind_m anual.pdf.

5.3.2. Cachegrind Cachegrind имитирует взаимод ействие программы с кэшем и мод улем пред сказания переход ов.

Cachegrind след ит за выполнением инструкций первого уровня, кэшированием д анных и взаимод ействием с послед ним уровнем кэша. Во время д иагностики программы буд ут работать в 20-100 раз мед леннее.

Команд а запуска Cachegrind:

# valgrind --tool=cachegrind программа

Cachegrind возвращает статистику по след ующим операциям:

чтение кэша инструкциями первого уровня и промахи чтения;

чтение кэша и памяти, промахи чтения, промахи чтения кэша послед него уровня;

запись в кэш и память, промахи записи, промахи записи в кэш послед него уровня;

выполненные и неверно пред сказанные условные ветвления:

выполненные и неверно пред сказанные непрямые переход ы.

Cachegrind вывод ит статистику на консоль и сохраняет более под робную информацию в файл cachegrind.out.PID (pid — ид ентификатор тестируемого процесса).

Д ля анализа этого файла используется cg_annotate:

# cg_annotate cachegrind.out.PID

–  –  –

cg_annotate позволяет вывод ить строки д линой больше 120 знаков. Чтобы облегчить чтение, рекоменд уется изменить ширину окна терминала так, чтобы такие строки вмещались полностью.

Созд анные профили можно сравнить и опред елить изменения в производ ительности программ:

# cg_diff первый_профиль второй_профиль Результаты буд ут сохранены в файл, д ля чтения которого также можно использовать cg_annotate.

Cachegrind сод ержит след ующие параметры:

–  –  –

--I1 Размер, ассоциативность, размер строк кэша инструкций первого уровня. Формат:

-I1=размер,ассоциативность,размер_строк.

--D1 Размер, ассоциативность, размер строк кэша д анных первого уровня. Формат:

-I1=размер,ассоциативность,размер_строк.

--LL Размер, ассоциативность, размер строк кэша послед него уровня. Формат:

-I1=размер,ассоциативность,размер_строк.

--cache-sim Включает и отключает сбор статистики попад ания и промахов кэша. По умолчанию используется значение yes.

Отключение обоих параметров --cache-sim и --branch-sim отменит сбор статистики.

--branch-sim Включает и отключает сбор статистики об инструкциях ветвления и числе неверных пред сказаний. По умолчанию используется значение no, так как под обный анализ замед ляет Cachegrind примерно на 25%.

Од новременное отключение параметров --cache-sim и --branch-sim полностью отменит сбор статистики.

Полный список параметров можно найти в /usr/share/doc/valgrind-версия/valgrind_m anual.pdf.

5.3.3. Massif Massif оценивает размер памяти кучи, используемой программой, что поможет повысить эффективность работы и снизить вероятность нехватки пространства в области под качки. Massif поможет найти фрагменты программы, которые требуют выд еления д ополнительной памяти.

Под обная д иагностика замед лит работу программы примерно в 20 раз.

Формат:

# valgrind --tool=massif программа Massif сохраняет статистику в файл m assif.out.pid, гд е pid — ид ентификатор тестируемого процесса.

m s_print генерирует график выд еления памяти:

# ms_print massif.out.PID Эта команд а созд аст график выд еления памяти на протяжении работы программы.

Параметры Massif включают:

Red Hat Enterprise Linux 6 Оптимизация производ итель ности

–  –  –

--heap-adm in Опред еляет размер ад министративного блока в байтах (по умолчанию 8).

--stacks Включает и отключает сбор статистики стека. Возможные значения — yes и no (по умолчанию). Активация этой возможности значительно замед ляет работу Massif.

Изначально под разумевается, что стек имеет нулевой размер, что облегчает опред еление размера секции стека, используемой программой.

--tim e-unit Зад ает ед иницы времени. Д оступные значения: i (по выполненным инструкциям, используется по умолчанию), m s (в миллисекунд ах) и B (в байтах). Этот параметр опред еляет формат ед иниц на графике m s_print.

Полный список параметров можно найти в /usr/share/doc/valgrind-версия/valgrind_m anual.pdf.

5.4. Параметры производительности в /proc В этой секции рассматриваются параметры, помогающие опред елить размер памяти и файловой системы, и риски, связанные с их использованием.

Чтобы временно изменить параметр, сохраните его новое значение в proc.

Например, чтобы присвоить overcommit_memory значение 1, выполните:

# echo 1 /proc/sys/vm/overcommit_memory Путь зависит от изменяемого параметра.

Команд а sysctl переопред еляет параметры с сохранением результатов. За д альнейшей информацией обратитесь к руководству по развертыванию по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

Параметры памяти Перечисленные параметры опред елены в /proc/sys/vm /.

overcommit_memory Опред еляет условия разрешения и отказа запросов больших объемов памяти.

Возможные значения:

–  –  –

д опустимой нагрузки на память.

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

2 — отказ обработки запросов, запрашивающих память, размер которой превышает суммарный размер памяти пространства под качки и ОЗУ в соответствии с overcommit_ratio.

–  –  –

overcommit_ratio Если overcommit_memory равен 2, опред еляет процентную часть физической памяти (см. описание overcommit_memory). По умолчанию равен 50.

max_map_count Максимальное число регионов памяти, д оступных процессу. По умолчанию равно 65530.

nr_hugepages Число страниц большого размера. По умолчанию равно 0. Выд еление больших страниц возможно только при наличии д остаточного числа след ующих д руг за д ругом свобод ных страниц. Зарезервированные этим параметром страницы не могут использоваться д ля д ругих целей. За д альнейшей информацией обратитесь к д окументации в /usr/share/doc/kernel-doc-версия_ядра/Docum entation/vm /hugetlbpage.txt Параметры яд ра Перечисленные параметры опред елены в /proc/sys/kernel/.

msgmax Максимальный размер сообщения в очеред и (в байтах). По умолчанию равен 65536. Это значение не может превышает msgmnb.

msgmnb Максимальный размер очеред и сообщений (в байтах). По умолчанию равен 65536.

msgmni Максимальное число ид ентификаторов очеред ей сообщений (число очеред ей). Д ля 64разряд ной архитектуры по умолчанию равно 1985, а д ля 32-разряд ной — 1736.

shmall Размер общей памяти (в байтах), которая может быть использоваться в зад анный момент. Д ля 64-разряд ной архитектуры по умолчанию равен 4 294 967296, а д ля 32Red Hat Enterprise Linux 6 Оптимизация производ итель ности

–  –  –

shmmax Максимальный размер сегмента общей памяти (в байтах). Д ля 64-разряд ной архитектуры по умолчанию равен 687194 76736, а д ля 32-разряд ной — 4 294 967295.

–  –  –

threads-max Максимальное число од новременно выполняемых потоков. По умолчанию эквивалентно

max_threads. Формула расчета:

max_threads = mempages / (8 * РАЗМЕР_ПОТОКА / РАЗМЕР_СТРАНИЦЫ ) Минимальное значение threads-max равно 20.

Параметры файловой системы Перечисленные параметры опред елены в /proc/sys/fs/.

aio-max-nr Максимальное число событий в асинхронных контекстах ввод а-вывод а. По умолчанию равно 65536. При изменении этого значения размеры структур д анных яд ра не изменяются автоматически.

file-max Возвращает максимальное число д ескрипторов файлов в яд ре. По умолчанию эквивалентно files_stat.max_files, в качестве значения которого выбирается большее из д вух — (m em pages * (РАЗМЕР_СТ РАНИЦЫ / 1024 )) / 10 или NR_FILE (8192 в Red Hat Enterprise Linux). Увеличение этого значения может уменьшить вероятность ошибок, связанных с нехваткой д ескрипторов файлов.

Параметры обработки нехватки памяти

Выд еление всей д оступной памяти, включая пространство под качки, может привести к панике яд ра. Это можно пред отвратить, присвоив параметру /proc/sys/vm/panic_on_oom значение 0, что вызовет функцию oom _killer при нехватке памяти, которая остановит несанкционированные процессы.

Ниже привед ен параметр, который может быть зад ан д ля отд ельных процессов, обеспечивая тем самым тонкий контроль над тем, какие процессы oom _killer буд ет останавливать. Он размещается в /proc/PID/ (PID — ид ентификатор процесса).

–  –  –

Д очерние процессы наслед уют oom_score род ительского процесса. Т ак, например, если sshd не использует oom _killer, то процессы, запущенные в рамках его сеанса, также не буд ут использовать. Это может иметь отрицательный эффект, так как oom _killer не сможет освобод ить память таких процессов.

5.5. Виртуальная память Виртуальная память используется процессами, кэшем файловой системы и яд ром. Степень ее занятости опред еляется след ующими параметрами:

swappiness Значение от 0 д о 100 опред еляет процент под качки. Высокие значения означают, что пред почтение буд ет отд аваться производ ительности системы, агрессивно под качивая страницы из физической памяти. Низкие значения избегают под качки с целью уменьшения зад ержки обслуживания. По умолчанию равно 60.

min_free_kbytes Минимальный размер свобод ной памяти (в килобайтах). При д остижении этого порога начнут выд еляться резервные страницы.

–  –  –

Порог не д олжен быть слишком высоким или слишком низким.

Слишком низкое значение min_free_kbytes буд ет препятствовать освобожд ению памяти, что завершится зависанием системы и остановкой множества процессов.

В то же время слишком высокий порог (5-10% системной памяти) быстро привед ет к нехватке памяти. Linux обычно использует всю д оступную оперативную память д ля кэширования д анных файловой системы, а высокий порог означает, что на освобожд ение памяти буд ет тратится слишком много времени.

dirty_ratio Процент «грязных» д анных по отношению к общему размеру памяти, при д остижении которого начнется их запись (при помощи pdflush). По умолчанию равно 20 процентам.

dirty_background_ratio Процент «грязных» д анных по отношению к общему размеру памяти, при д остижении которого начнется их запись в фоновом режиме (при помощи pdflush). По умолчанию равно 10 процентам.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности

–  –  –

Эта операция не является разрушающей. Т ак как «грязные» объекты не освобожд ают память, пред варительно рекоменд уется выполнить sync.

–  –  –

Чтобы временно изменить параметр, сохраните его значение в proc. Например, чтобы присвоить

swappiness значение 50, выполните:

# echo 50 /proc/sys/vm/swappiness Команд а sysctl переопред еляет параметры с сохранением результатов. За д альнейшей информацией обратитесь к руководству по развертыванию по ад ресу http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/.

–  –  –

Глава 6. Ввод-вывод

6.1. Характеристики

Red Hat Enterprise Linux 6 включает целый ряд улучшенных функций управления стеком ввод авывод а:

Т верд отельные накопители (SSD, Solid State Disks) теперь опред еляются автоматически, что положительно сказывается на производ ительности планировщика ввод а-вывод а в силу эффективного использования высокоскоростного ввод а-вывод а SSD-д исков.

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

Улучшена производ ительность барьеров файловой системы.

Вместо pdflush теперь используются потоки очистки отд ельных устройств, что значительно облегчает масштабирование в схемах с большим количеством LUN.

6.2. Анализ Оптимизация производ ительности стека д анных требует понимания схемы д вижения д анных в системе, а также конфигурации накопителей и их эффективности при разных уровнях нагрузки.

При развертывании новой системы рекоменд уется созд ать полный профиль схемы хранения д анных. Начните с физических д исков и LUN, оцените их производ ительность при обработке прямого ввод а-вывод а (без участия кэша страниц яд ра). Результаты этой проверки буд ут служить точкой отсчета. После этого можно приступить к тестированию базовой нагрузки, например при помощи aio-stress, что буд ет генерировать набор случайных операций чтения и записи.

Ниже привед ены графики результатов прогонов aio-stress, кажд ый из которых сод ержит четыре стад ии: послед овательная запись, послед овательное чтение, случайная запись, случайное чтение. Т ак, в привед енных примерах тестирование провод ится д ля разных размеров записей (ось X), а графики иллюстрируют результаты д ля очеред ей разной д лины.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности Вертикальная ось отражает скорость обслуживания в мегабайтах в секунд у, горизонтальная — размер д анных в килобайтах.

Рисунок 6.1.

Вывод aio-stress д ля 1 потока и 1 файла Обратите внимание на рост кривой — производ ительность возрастает при росте числа обрабатываемых запросов ввод а-вывод а.

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

После этого можно приступить к тестированию многопутевых схем. Если наблюд ается существенное снижение производ ительности, опред елите, является ли это оправд анным. Т ак, например, снижение производ ительности при д обавлении уровня проверки контрольной суммы RAID в стек является ожид аемым в отличие от неупоряд оченных операций ввод а-вывод а. Red Hat Enterprise Linux по умолчанию стремится оптимизировать сопоставление разд елов и метад анных Device Mapper, но в некоторых случаях может требоваться ручная коррекция.

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

След ующие инструменты искусственно генерируют нагрузку:

–  –  –

6.3. Инструменты Существует множество инструментов д иагностики производ ительности в под системах ввод авывод а. Т ак, vmstat возвращает общую информацию о производ ительности. След ующие столбцы имеют отношение к ввод у-вывод у: si (в пространство под качки), so (из пространства под качки), bi (в блочное устройство), bo (из блочного устройства), wa (время ожид ания). si и so служат инд икаторами нагрузки на память, особенно если пространство под качки расположено на том же устройстве что и разд ел д анных. si и bi сод ержат информацию об операциях чтения, а so и bo об операциях записи. В качестве ед иниц измерения используются килобайты. wa возвращает время простоя и сообщает, какая часть очеред и ожид ает завершения операции ввод а-вывод а.

Анализ статистики vmstat поможет под тверд ить или опровергнуть факт потери производ ительности на уровне под системы ввод а-вывод а. Т ак, если значения cache и bo увеличиваются, после чего cache уменьшается, а free увеличивается, это означает, что система осуществляет запись и освобожд ает кэш страниц.

Вывод vmstat объед иняет статистику всех устройств. Опред елив слабое место, можно провести более тщательный анализ с помощью iostat, который покажет статистику по устройствам, включая сред ний размер запросов, число операций ввод а и вывод а в секунд у и т.п.

Знание сред него размера запросов и очеред ей (avgqu-sz) поможет оценить производ ительность. Т ак, если сред ний размер очеред и равен 1, а размер запросов — 4 КБ, производ ительность не может быть высокой.

Более д етальный анализ можно провести с помощью blktrace. Вывод blktrace может быть обработан д ругими утилитами, такими как blkparse.

blkparse пред ставляет вывод blktrace в уд обном д ля чтения формате.

Пример вывод а blktrace:

–  –  –

Как вид но из примера, такой вывод не очень уд обно читать.

Фрагмент вывод а blkparse буд ет выгляд еть так:

Red Hat Enterprise Linux 6 Оптимизация производ итель ности

–  –  –

Существует несколько утилит д ля интерпретации слишком под робного вывод а blkparse.

Т ак, btt получает информацию о том, сколько времени было затрачено на выполнение операций в стеке ввод а-вывод а.

Q — запросы к блочному устройству поставлены в очеред ь;

G — запрос получен;

Полученный запрос не может быть объед инен с существующим и буд ет обслуживаться отд ельно.

M — запрос объед инен с существующим.

I — запрос д обавлен в очеред ь к устройству;

D — запрос перед ан устройству;

C — запрос обработан;

P — очеред ь к блочному устройству закрыта с целью объед инения запросов;

U — очеред ь к блочному устройству открыта, перед ача составных запросов устройству разрешена.

btt разбивает информацию по времени:

Q2Q — интервал перед ачи запросов блочной под системе;

Q2G — время от д обавления операции в очеред ь блочного ввод а-вывод а д о выд ачи запроса обслуживания;

G2I — время от выд ачи запроса д о его д обавления в очеред ь устройства;

Q2M — время с момента д обавления операции в очеред ь блочного ввод а-вывод а д о его слияния с существующим запросом;

I2D — время нахожд ения запроса в очеред и устройства (с момента поступления запроса в очеред ь д о его перед ачи устройству);

M2D — время с момента слияния запросов д о их перед ачи устройству;

D2C — время обслуживания запроса устройством;

Q2C — общее время нахожд ения запроса в блочной под системе.

На основе д анных из привед енной выше таблицы можно сд елать много вывод ов. Например, если Q2Q значительно превышает Q2C, это значит, что приложение генерирует запросы ввод авывод а слишком мед ленно. Слишком высокое значение D2C означает, что устройство слишком д олго обрабатывает запросы в силу слишком большой или неоптимальной нагрузки. Высокое значение Q2G сообщает о том, что в очеред ь од новременно поступает большое число запросов, и возможно, под система хранения не справляется с нагрузкой.

Еще од на утилита — seekwatcher — использует д воичные д анные blktrace д ля построения д иаграмм обработки ввод а-вывод а.

–  –  –

Рисунок 6.2.

Пример вывод а seekwatcher Горизонтальная ось сод ержит время. Кривые чтения и записи пред ставлены разными цветами.

Обратите внимание на зависимость производ ительности от скорости поиска д анных — производ ительность накопителей, интенсивно выполняющих операции seek, снижается.

6.4. Планировщики Од ним из первых решений при проектировании под системы ввод а-вывод а, которое вам над о буд ет принять, является выбор планировщика. В этой секции рассматриваются планировщики, Red Hat Enterprise Linux 6 Оптимизация производ итель ности позволяющие улучшить производ ительность под системы ввод а-вывод а.

6.4.1. CFQ Планировщик (CFQ, Completely Fair Queuing) равномерно распред еляет ресурсы межд у запросами в соответствии с их приоритетом. Процессы под разд еляются на три класса: RT (realtime), BE (best effort) и безд ействующие (idle). Приоритет может быть присвоен процессу вручную с помощью команд ы ionice или программно с помощью ioprio_set. По умолчанию процессы обслуживаются в поряд ке очеред и (best effort). Процессы классов RT и BE д ополнительно могут иметь приоритет от 0 д о 7 (чем меньше значение, тем выше приоритет).

Процессы класса RT имеют наивысший приоритет, поэтому нужно его использовать с большой осторожностью, потому что это может значительно ограничить время обслуживания менее приоритетных процессов. Процессы BE имеют приоритет 4. Безд ействующие процессы (idle) обслуживаются в послед нюю очеред ь.

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

Од нако ожид ание привод ит к простою оборуд ования, что особенно ощутимо на высокоскоростных накопителях (SSD и внешних массивах д аннхы). Поэтому при использовании CFQ может потребоваться откорректировать настройки в /sys/block/устройство/queue/iosched/.

slice_idle = 0 quantum = 64 group_idle = 1 Д аже если group_idle=1, вероятность простоев не исключена, но это буд ет происход ить намного реже.

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

Параметры back_seek_max Обратный поиск характеризуется более д лительными зад ержками и негативно влияет на производ ительность. Этот параметр ограничивает расстояние д ля обратного поиска (в килобайтах). По умолчанию составляет 16 КБ.

back_seek_penalty Т ак как обратный поиск характеризуется низкой эффективностью, за его выполнение буд ет назначаться штраф. Пред ставим, например, что головка д иска расположена на позиции 1024 КБ, а очеред ь обслуживания сод ержит д ва запроса — к позициям 1008 КБ и 1040 КБ. Оба запроса од инаково уд алены от текущего расположения. Од нако с учетом штрафа на обратный поиск (по умолчанию 2), запрос обращения к позиции 1040 КБ

–  –  –

буд ет выполнен первым.

fifo_expire_async Максимальное время ожид ания обслуживания асинхронной записи (через буфер). По умолчанию равно 250 миллисекунд ам. После его истечения од ин запрос буд ет перенесен в очеред ь д ля перед ачи.

fifo_expire_sync Аналогично fifo_expire_async, но д ля синхронных запросов. По умолчанию равно 125 мс.

group_idle Перевод ит CFQ в режим ожид ания после обслуживания послед него процесса в cgroup.

Д олжен быть равен 1 при использовании равноценных групп cgroup, и при этом slice_idle равен 0.

group_isolation 1 включает изоляцию групп, д аже если при этом пострад ает производ ительность.

Изоляция групп позволяет равномерно обрабатывать нагрузку, которая поступает послед овательно и случайно. Если изоляция отключена (0), нагрузка буд ет обрабатываться послед овательно. Под робную информацию можно найти в Docum entation/cgroups/blkio-controller.txt.

low_latency Если равно 1 (по умолчанию), CFQ пред оставляет процессам максимальное время ожид ания (300 миллисекунд ). Это позволяет обслуживать запросы более равномерно, но за счет снижения скорости. Значение 0 отключает ожид ание.

quantum Этот параметр контролирует число запросов ввод а-вывод а, перед аваемых хранилищу за од ин раз, и тем самым ограничивает д лину очеред и. По умолчанию равен 8. След ует соблюд ать осторожность при увеличении значения, так как это может отрицательно повлиять на производ ительность при высоких уровнях нагрузки.

slice_async Контролирует интервал времени, пред оставляемый процессам, запрашивающим асинхронный ввод -вывод. По умолчанию равен 4 0 миллисекунд ам.

slice_idle Опред еляет время ожид ания поступления запросов. В Red Hat Enterprise Linux 6.1 и пред ыд ущих выпусках равно 8 миллисекунд ам, а начиная с Red Hat Enterprise Linux 6.2 — 0. Нулевое значение может ухуд шить производ ительность внешних RAIDнакопителей, так как возрастет общее число операций поиска. Д ля д ругих типов накопителей рекоменд уется использовать положительное значение.

Red Hat Enterprise Linux 6 Оптимизация производ итель ности slice_sync Контролирует интервал времени, пред оставляемый процессам, запрашивающиму синхронный ввод в-вывод. По умолчанию равен 100 миллисекунд ам.

6.4.2. Deadline Планировщик Deadline ограничивает прод олжительность зад ержки. Зад ержка измеряется с момента получения запроса планировщиком, что д овольно важно, так как приложение может перейти в состояние безд ействия при ожид ании освобожд ения д ескрипторов. По умолчанию операции чтения обслуживаются в первую очеред ь, так как вероятность блокирования приложений при выполнении чтения более высока.

Deadline обрабатывает запросы не отд ельно, а в форме пакетов, сод ержащих послед овательность запросов. После обработки пакета планировщик проверяет время ожид ания запросов записи и принимает решение о том, стоит ли приступить к их обработке или получить новый пакет. В начале обработки пакета очеред ь FIFO буд ет проверяться только на пред мет истекших запросов, и уже после этого буд ет выбрано направление (чтение или запись). Если была выбрана запись, но в то же время существует истекший запрос чтения, его обслуживание буд ет отложено д о завершения записи.

Параметры fifo_batch Число операций чтения и записи в пакете. По умолчанию равно 16. Увеличение значения может улучшить производ ительность, но и увеличить зад ержку.

front_merges Значение 0 может быть присвоено, если вы уверены, что уровень нагрузки не буд ет требовать объед инения запросов в начале очеред и. В противном случае рекоменд уется оставить 1.

read_expire Максимальное время ожид ания обслуживания запроса чтения (в миллисекунд ах). По умолчанию равно 500 мс.

write_expire Максимальное время ожид ания обслуживания запроса записи (в миллисекунд ах). По умолчанию равно 5000 мс.

writes_starved Опред еляет приоритет операций чтения, то есть число пакетов чтения, которые буд ут обслужены, прежд е чем буд ет обработан пакет записи.

6.4.3. Noop Noop помещает запросы в простую очеред ь типа FIFO (First In First Out). Слияние запросов происход ит на блочном уровне. Этот планировщик особенно эффективен д ля высокоскоростных накопителей.

–  –  –

Ниже рассмотрены его параметры.

Параметры в /sys/block/sdX/queue add_random В некоторых случаях изд ержки обслуживания ввод а-вывод а д ля /dev/random измеримы. Т огд а этот параметр рекоменд уется обнулить.

max_sectors_kb Этот параметр изменяет максимальный размер запроса и по умолчанию составляет 512 килобайт. Минимально д опустимый размер ограничивается размером логического блока, а максимальный размер ограничивается значением max_hw_sectors_kb.

Производ ительность некоторых SSD-д исков может снизиться, если размер запросов превышает размер внутренних блоков SSD. В таких случаях рекоменд уется уменьшить значение max_hw_sectors_kb д о размера блока. Производ ительность на этом уровне можно протестировать с помощью iozone и aio-stress, изменяя размер записи, например с 512 Б д о 1 МБ.

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

nr_requests Число запросов чтения или записи в очеред и. По умолчанию равно 128, то есть очеред ь может сод ержать 128 запросов чтения и 128 запросов записи. Если очеред ь заполнена, процесс перейд ет в состояние ожид ания, а при освобожд ении места в очеред и он буд ет пробужд ен.

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

optimal_io_size Иногд а накопители пред оставляют информацию об оптимальном размере сегмента ввод а-вывод а. Это типично д ля программных и аппаратных RAID, гд е оптимальный размер равен размеру сегмента черед ования. След ует прид ерживаться значений, кратных рекоменд уемым.

read_ahead_kb Если приложение осуществляет чтение д анных из файлов послед овательно, операционная система может использовать алгоритм упрежд ения чтения. Этот алгоритм считывает больше д анных, чем было запрошено, и помещает их в кэш, что экономит время на обращение к д иску. Нед остаток этого под ход а состоит в том, что существует вероятность того, что д анные не понад обятся, но они уже занимают место в кэше и Red Hat Enterprise Linux 6 Оптимизация производ итель ности буд ут вытеснены только тогд а, когд а нагрузка на память возрастет. В свою очеред ь, при наличии нескольких под обных процессов нагрузка на память возрастает значительно быстрее.

Д ля многопутевых устройств рекоменд уется увеличить это значение, например д о 8192 килобайт, так как они обычно включают в свой состав несколько физических устройств.

Д ля начала можно присвоить read_ahead_kb значение 128 и корректировать его по мере необход имости.

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

rq_affinity Значение 1 принужд ает обработку операций на том же процессоре, гд е они были сгенерированы. Это может повысить эффективность кэширования д анных.

–  –  –

Глава 7. Файловые системы Эта глава сод ержит обзор файловых систем, под д ерживаемых Red Hat Enterprise Linux, и способов оптимизации их производ ительности.

7.1. Характеристики производительности файловых систем Основные характеристики файловых систем, которые влияют на производ ительность включают параметры монтирования, выбранный метод форматирования, а также инд ивид уальные свойства приложений.

7.1.1. Параметры форматирования Размер блока файловой системы Размер блока может быть зад ан на стад ии m kfs. При этом верхний пред ел опред еляется максимальным размером страниц, а нижний пред ел зависит от типа файловой системы. Обычно станд артного размера д олжно быть д остаточно.

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

Геометрия

Если в основе системы лежат д исковые массивы (например, RAID5), производ ительность может быть улучшена за счет выравнивания метад анных в соответствии с геометрией массива. Д ля программных RAID-массивов (LVM и MD) это буд ет сд елано автоматически, в то время как в д ругих ситуациях ад министратор д олжен буд ет опред елить геометрию вручную в строке команд ы m kfs.

Под робную информацию о файловых системах можно найти в руководстве по управлению накопителями.

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

–  –  –

Журналы д олжны храниться в над ежном месте. Их потеря может привести к порче файловой системы.

Внешние журналы созд аются на стад ии m kfs, а устройства журналов опред еляются во время монтирования. За под робной информацией обратитесь к справочным страницам m ke2fs(8), m kfs.xfs(8) и m ount(8).

7.1.2. Параметры монтирования Red Hat Enterprise Linux 6 Оптимизация производ итель ности Барьеры Барьер записи — механизм яд ра, отвечающий за поряд ок записи метад анных. При отключении энергии файловые системы с барьерами сохраняют состояние д анных, перед анных при помощи fsync(). Red Hat Enterprise Linux включает барьеры по умолчанию.

Активация барьеров может замед лить работу некоторых приложений, особенно тех, которые активно используют fsync() или часто созд ают и уд аляют небольшие файлы. Д ля стабильных накопителей, не использующих непостоянный кэш, а также д ля некритичных приложений функциональность барьеров можно отключить с помощью параметра nobarrier. Более под робно об этом рассказывается в руководстве по управлению накопителями.

Время д оступа (noatime)

Обычно время д оступа д ля чтения файлов (atime) можно изменить в метад анных д ескриптора inode, что требует выполнения д ополнительной операции записи. Если нет необход имости в точном опред елении atime, при монтировании файловой системы можно д обавить параметр noatime. В большинстве случаев, од нако, atime не д обавляет значительную зад ержку, так в яд ре Red Hat Enterprise Linux 6 уже по умолчанию включен режим relatime. В этом режиме atime буд ет обновляться, если пред ыд ущее время д оступа меньше времени изменения файла (mtime) или времени изменения статуса (ctime).

–  –  –

При активации noatime буд ет автоматически включен параметр nodiratime, поэтому отд ельно его устанавливать не требуется.

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

Утилита tuned и черед ование LVM особенно эффективно используют функции чтения с упрежд ением, но этого не всегд а бывает д остаточно. Помимо этого, Red Hat Enterprise Linux не всегд а может установить оптимальное значение д ля чтения с упрежд ением. Например, если высокопроизвод ительный массив пред ставлен как ед инственный LUN, операционная система не буд ет его использовать как массив и не сможет воспользоваться всеми преимуществами чтения с упрежд ением.

Д ля просмотра настроек упрежд ающего чтения д ля указанного устройства выполните след ующую команд у:

# blockdev -getra устройство Ниже это значение буд ет изменено (N — число блоков размером 512 байт).

# blockdev -setra N устройство Зад анное с помощью blockdev значение не буд ет сохраняться межд у перезагрузками.

Рекоменд уется созд ать сценарий init.d, чтобы восстановить его при запуске системы.

7.1.3. Обслуживание файловой системы

–  –  –

Уд аление незанятых блоков Блоки, не используемые файловой системой, можно освобод ить. Это помогает освобод ить пространство в файловых системах на SSD-д исках и в д инамически созд анных томах.

Операции уд аления пакетов блоков выполняются пользователем: команд а fstrim уд аляет неиспользуемые блоки в соответствии с зад анными критериями. Эти операции можно использовать в файловых системах XFS и ext4 в версиях Red Hat Enterprise Linux 6.2 и выше при условии, что они под д ерживаются на уровне физических устройств. Параметр /sys/block/устройство/queue/discard_m ax_bytes поможет это проверить: если его значение не равно нулю, уд аление под д ерживается.

Чтобы разрешить уд аление блоков, при монтировании файловой системы над о д обавить параметр -o discard (или указать его в строке команд ы m ount в /etc/fstab). Уд аление буд ет выполняться без участия пользователя. Блоки, переход ящие из занятого состояние в свобод ное, буд ут автоматически уд аляться в ext4 (начиная с Red Hat Enterprise Linux 6.2) и в XFS (начиная с Red Hat Enterprise Linux 6.4).

Red Hat не рекоменд ует отключать эту функциональность, если в этом нет необход имости.

7.1.4. Производ ительность приложений Выд еление пространства Файловые системы ext4, XFS позволяют заранее выд елить пространство при помощи вызова fallocate(2). Это поможет уменьшить фрагментацию, тем самым улучшив производ ительность. fallocate(2) отмечает зад анный д иапазон как выд еленный и инициализирует его нулями.

7.2. Профили производительности tuned-adm позволяет выбрать профиль д ля улучшения производ ительности системы.

Некоторые профили буд ут рассмотрены ниже.

latency-performance Профиль д ля коррекции зад ержки ответа сервера. Отключает механизмы tuned и ktune, изменяет режим cpuspeed на perform ance. Д ля контроля д искового ввод а-вывод а используется планировщик с алгоритмом deadline. В качестве обязательного значения cpu_dm a_latency используется 0.

throughput-performance Профиль д ля коррекции производ ительности обработки д анных. Рекоменд уется при отсутствии д оступа к большому хранилищу д анных.



Pages:   || 2 |
Похожие работы:

«УДК 811.111 Вестник СПбГУ. Сер. 9. 2011. Вып. 1 Л. А. Девель ДВУЯЗЫЧНАЯ ЛЕКСИКОГРАФИЯ: АЛГОРИТМ ОПИСАНИЯ Цель настоящей статьи — дать краткую характеристику общей двуязычной лексикографии (по состоянию на настоящий момент) и сформулировать алгоритм описа...»

«МЕЖДУНАРОДНОЕ ЧАСТНОЕ ПРАВО И.М. КУТУЗОВ* РАМБУРСНЫЕ ОБЯЗАТЕЛЬСТВА В АККРЕДИТИВНОЙ ФОРМЕ МЕЖДУНАРОДНЫХ РАСЧЕТОВ Ключевые слова: аккредитив, банк-эмитент, исполняющий банк, рамбурсирующий банк, рамбурсные полномочия, рамбурсные обязательства, рамбурсные требования...»

«Направление подготовки: 030900.62 ЮРИСПРУДЕНЦИЯ. Квалификация (степень) выпускника – бакалавр. Очная форма обучения.Дисциплина: Уголовное право. Особенная часть. Количество часов: 236 (44 – лекции; 102 – практические занятия; 90 – самостоятельная работа). Формы ко...»

«BAZ О ПОРЯДКЕ ПРОВЕДЕНИЯ ПРОВЕРОК ПРИ ОСУЩЕСТВЛЕНИИ ГОСУДАРСТВЕННОГО КОНТРОЛЯ (НАДЗОРА) (РЕДАКЦИЯ НА 24.12.2012) ЗАКОН ПРЕЗИДЕНТ ПРИДНЕСТРОВСКОЙ МОЛДАВСКОЙ РЕСПУБЛИКИ Настоящий Закон определяет порядок проведения мероприятий по контролю (надзору)...»

«МЕЖДУНАРОДНЫЕ СТАНДАРТЫ ТРУДА (ILS) РУ КО В ОДС Т В О П О П Р О Г РА М М Е Пересмотрено в Январь 2017. © Disney СОДЕРЖ АНИЕ I ВВЕДЕНИЕ 4 II ОБЩИЕ ТРЕБОВАНИЯ ПРОГРАММЫ ILS 5 III КОДЕКС ПОВЕДЕНИЯ ДЛЯ ПРОИЗВОДИТЕЛЕЙ КОМПАНИИ DISNEY И...»

«НАУКА И СОВРЕМЕННОСТЬ – 2012 Список литературы: 1. Долгова А.И. Криминология: учебник для вузов. – М., 2005. – С. 865.2. Полный курс уголовного права: в 5 т. Т. V: Преступления против государственной власти / Под ред. докт. юрид. наук, проф. А.И. Коро...»

«Приложение № к распоряжению № от " " _ 20_ г. Договор об оказании услуг связи "Билайн" Публичное Акционерное Общество "Вымпел-Коммуникации" (далее — "Оператор"), и физическое/юридическое лицо (далее — "Абонент") заключили Договор об оказании услуг связи "Билайн" (далее — "Договор") 1. Общие положения 1.1...»

«Русская Православная Це рковь (Московский Патриарх ат) Екатеринбургская епар хия Отдел социального служ ения ОТЧЕТ о проделанной работе за 2014 год Руководитель Отдела социального служения протои...»

«УДК: 343.44 (575.2) (043.3) ПРАВОВОЙ И ФУНКЦИОНАЛЬНЫЙ СТАТУС ОСНОВНЫХ ЕСТЕСТВЕННЫХ МОНОПОЛИЙ В КЫРГЫЗСКОЙ РЕСПУБЛИКЕ А.Д. Хамзаева, кандидат юридических наук, исполняющий обязанности доцента кафедры судебной экспертизы Кыргызско-Российский Славянский университе...»

«РОССИЙСКАЯ ФЕДЕРАЦИЯ (19) (11) (13) RU 2 576 867 C1 (51) МПК A01B 79/02 (2006.01) A01G 1/00 (2006.01) A01C 21/00 (2006.01) ФЕДЕРАЛЬНАЯ СЛУЖБА ПО ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ (12) ОПИСАНИЕ ИЗОБРЕТЕНИЯ К ПАТЕНТУ На основании пункта 1 статьи 1366 части ч...»

«Урок права в 10 "А" классе по теме "Виды правонарушений. Преступление" Цель урока: познакомить учащихся с видами правонарушений и отличительными признаками преступления.Задачи урока: Обучающие: формирование понятий "правонарушение", "преступление";способс...»

«УТВЕРЖДЕН решением общего собрания учредителей Протокол № 1 от "22" августа 2015 года УСТАВ СОЮЗА ОРГАНИЗАЦИЙ ПО РАЗВИТИЮ МЕЖДУНАРОДНОГО ОБРАЗОВАНИЯ СОЮЗ УНИВЕРСИТЕТОВ ЕВРАЗИИ Москва 2015 год СОЮЗ УНИВЕРСИТЕТОВ ЕВРАЗИИ 1. ОБЩИЕ ПОЛОЖЕНИЯ СОЮ...»

«Банковская гарантия 12.02.2012 21:01 Обновлено 25.11.2013 08:11 Банковская гарантия это письменное обязательство банка (выступающего гарантом), выданное по просьбе клиента (принципала) или другой стороны, уполномоченной на это клиентом-принципалом, по которому банк гарант обязуется уплатить кред...»

«Институт законодательства и сравнительного правоведения при Правительстве Российской Федерации. Москва УДК 346.546 ББК 67.404.06 К64 Издание подготовлено к XI Ежегодным научным чтениям, посвященным памяти профессора С.Н. Братуся Одобрено секцией "Частное право" Уч...»

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

«Урок русского языка в 7-м классе по теме Наречие Цели урока: Познавательная: обобщение, расширение знаний о наречии как части речи повторение правил правописания наречий Развивающая : развитие творческих способностей,учащиеся учатся работать самостоятельно...»

«Практические аспекты процесса доказывания в международном коммерческом арбитраже Татьяна Слипачук, FCIArb, к.ю.н., ведущий научный сотрудник НИИ частного права и предпринимательства АПрНУ Право Украины, 2010 Как это ни странно, но унификация процедур международного арбитража иногда порождает в корне неверное представление, что...»

«Управление культуры и архивного дела Тамбовской области ТОГУК "Тамбовская областная детская библиотека" "Путеводитель в мире тамбовской природы" В царстве растений Справочно-информационное пособие для детей среднего и старшего возраста Тамбов Печатается по решению редакционно-издательского совета Тамбовской...»

«ИНСТРУКЦИЯ по применению инсектоакарицидного средства "Альфатрин" (пр-ва ЗАО "Научнокоммерческая фирма "РЭТ", г. Москва) Предназначена для работников дезинфекционных станций, центров Государственного санитарно-эпидемиологического надзора и других организаций, имеющих разрешение на право работы с инсектоакарицидам...»

«2 1.1. Цель учебной дисциплины Б3.Б.17 Международное право Целью изучения дисциплины "Международное право" является овладение студентами комплексом теоретических знаний о системе современного международного права, предмете и содержании международно-правов...»

«Православие и современность. Электронная библиотека. Архимандрит РАФАИЛ (Карелин) О языке православной иконы По благословению Архиепископа Пермского и Соликамского АФАНАСИЯ © Издательство "Сатисъ", 1997. Содержание Предисловие Первая часть Глава...»

«СПР АВК А ПО РЕЗУЛЬТАТАМ ОБОБЩЕНИЯ СУДЕБНОЙ ПРАКТИКИ РАССМОТРЕНИЯ ДЕЛ ОБ АДМИНИСТРАТИВНЫХ ПРАВОНАРУШЕНИЯХ, ВЛЕКУЩИХ АДМИНИСТРАТИВНОЕ ВЫДВОРЕНИЕ ЗА ПРЕДЕЛЫ РОССИЙСКОЙ ФЕДЕРАЦИИ ИНОСТРАННОГО ГРАЖДАНИНА ЛИБО ЛИЦА БЕЗ ГРАЖДАНСТВА, РАССМОТРЕННЫХ ЗА 8 МЕСЯЦЕВ 2011 ГОДА Челябинским областным судом проведено обобщение судебной прак...»

«Валентин Викторович Красник Вся неправда о подключении к электросетям Текст предоставлен правообладателем http://www.litres.ru/pages/biblio_book/?art=261282 Вся неправда о подключении к электросетям / В. В. Красник. : НЦ ЭНАС; Москва; 2009 ISBN 978-5-93196-966-4 Аннотация Рассмотре...»









 
2017 www.doc.knigi-x.ru - «Бесплатная электронная библиотека - различные документы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.