В UNIX имеется несколько инструментов, которыми можно пользоваться
для получения информации об ОС. Они доступны для самых разных вариантов
UNIX, и мы постарались проверить их все самым тщательным образом. К этим
инструментам относятся команды sar, vmstat, iostat, cpustat, mpstat, netstat,
top и Обратите внимание, что внешний вид их выходных данных может
для получения информации об ОС. Они доступны для самых разных вариантов
UNIX, и мы постарались проверить их все самым тщательным образом. К этим
инструментам относятся команды sar, vmstat, iostat, cpustat, mpstat, netstat,
top и Обратите внимание, что внешний вид их выходных данных может
быть разным в зависимости от конкретного варианта используемого клона UNIX, поэтому мы рекомендуем ознакомиться
с
информацией о клоне UNIX в руководстве (страницы a.k.a).Образцы команд и их параметры вместе с образцами выходных данных были выполнены на системе Sun Solaris (версии 2.61).
Многие операционные системы предлагают более продвинутые средства, например PcrfMon или Glance Plus, а некоторые компании продают инструменты для экспресс-анализа мониторинга ОС. Мы хотели бы также знать, как сконфигурированы аппаратные средства и операционная система, как много в ней оперативной памяти, сколько ЦП, контроллеров, дисков и дисковых групп и т. д. После того как нам удалось получить этот и предыдущие отчеты Oracle, перейдем к идентификации узких мест.
Использование ЦП Для большинства клонов UNIX использование ЦП может быть измерено с помощью команды -u 5 1000. Команда .гаг является сокращением от
system activity reporter
(составитель отчетов о деятельности системы). Ключ -и используется для измерения работы ЦП. Первое число означает частоту измерений (в секундах), а второе — количество повторений проводимых измерений для каждой частоты.Одним из классических мифов об использовании ЦП является следующий:
у системы с нулевым простоя ЦП процессор является узким местом.
Но правильно поставленный вопрос должен звучать следующим образом: как много процессов ожидает освобождения ЦП? Можно прекрасно работать с системой, коэффициент простоя которой равен нулю, если при этом средняя дина очереди процессов, ожидающих освобождения ЦП, не превышает (2 х число
ЦП).
Замечание
Размер
(2
х число ЦП) используется уже на протяжении нескольких лет и основан на скоростях и архитектуре современных процессоров, персональном опыте и рекомендациях некоторых промышленных экспертов по UNIX. Это число является просто критерием, а не инструментом измерения с высокой степенью точности.Если наша очередь готовых к выполнению работ не превышает названного
выше предела и процент простоя равен нулю, можно двигаться дальше, поско-
льку использованы все 100 процентов купленной системы. Ниже будет рассказа-
но, как с помощью команд vmstat или sar -q определить размер очереди готовых
к выполнению процессов системы. Если в среде NT запустить Task Ma-
выше предела и процент простоя равен нулю, можно двигаться дальше, поско-
льку использованы все 100 процентов купленной системы. Ниже будет рассказа-
но, как с помощью команд vmstat или sar -q определить размер очереди готовых
к выполнению процессов системы. Если в среде NT запустить Task Ma-
nager и выбрать в нем закладку Performance, можно в окне Processor Object увидеть общие цифры производительности. Далее, можно разбить эти цифры на
следующие показатели: % привилегированного времени, % процессорного времени и % времени пользователя, а также получить информацию об очереди, например число отложенных вызовов процедуры в секунду (DPC Queued per second) и т. п. Вот пример выходных данных команды sar -и:
SunOS ganyirede 5.7 Generic sun4u 10/30/00
18:58:12 %usr %sys %wio %idle
18:58:17 68 4 22 4
18:58:22 61 2 22 15
18:58:27 57 4 11 28
18:58:32 46 5 23 27
18:58:37 67 2 10 21
18:58:42 67 4 20 9
18:58:47 73 3 15 9
18:58:52 75 5 4 16
18:58:57 79 4 18 0
18:59:02 69 3 12 17
Average 66 4 16 14
Здесь использование ЦП разложено на следующие компоненты: %usr, %sys,
%wio и %idle. Первый компонент — %usr описывает процент времени, в тече-
ние которого ЦП задействован в пользовательских процессах (следует иметь в
виду, что здесь термин "процесс пользователя" рассматривается с точки зрения
операционной системы). Oracle при этом выступает как пользователь ОС. Вто-
рой компонент — %sys измеряет долю ЦП, необходимую операционной системе
для выполнения собственных работ (переключение контекстов, когда процессу
требуется операция ввода/вывода и процессор находится именно в его распо-
ряжении, или, наоборот, обработка прерываний, обслуживание сигналов и
т. д.). Третий компонент — %wio является мерой процессов, которые в настоя-
щий момент взаимодействуют с ЦП, но при этом ожидают выполнения постав-
ленных в очередь запросов ввода/вывода и вследствие этого не слишком
экономно используют ЦП. В зависимости от объема ввода/вывода и нагрузки
на систему всякий раз, когда процесс временно задерживает ЦП (потому что
должен произвести операцию ввода/вывода), ОС производит переключение
контекста путем отъема ЦП у этого процесса и передачу его какому-либо друго-
му процессу в очереди. Когда первоначально упоминавшийся процесс закончит
операцию ввода/вывода, он снова станет в очередь готовых к выполнению про-
цессов, чтобы получить очередную порцию процессорного времени. Можно
рассматривать либо как непроизводительное использование ЦП, либо
%wio и %idle. Первый компонент — %usr описывает процент времени, в тече-
ние которого ЦП задействован в пользовательских процессах (следует иметь в
виду, что здесь термин "процесс пользователя" рассматривается с точки зрения
операционной системы). Oracle при этом выступает как пользователь ОС. Вто-
рой компонент — %sys измеряет долю ЦП, необходимую операционной системе
для выполнения собственных работ (переключение контекстов, когда процессу
требуется операция ввода/вывода и процессор находится именно в его распо-
ряжении, или, наоборот, обработка прерываний, обслуживание сигналов и
т. д.). Третий компонент — %wio является мерой процессов, которые в настоя-
щий момент взаимодействуют с ЦП, но при этом ожидают выполнения постав-
ленных в очередь запросов ввода/вывода и вследствие этого не слишком
экономно используют ЦП. В зависимости от объема ввода/вывода и нагрузки
на систему всякий раз, когда процесс временно задерживает ЦП (потому что
должен произвести операцию ввода/вывода), ОС производит переключение
контекста путем отъема ЦП у этого процесса и передачу его какому-либо друго-
му процессу в очереди. Когда первоначально упоминавшийся процесс закончит
операцию ввода/вывода, он снова станет в очередь готовых к выполнению про-
цессов, чтобы получить очередную порцию процессорного времени. Можно
рассматривать либо как непроизводительное использование ЦП, либо
как потенциальное время простоя. И, наконец, четвертый компонент — % idle означает процент доступности ЦП, или, если говорить проще, процент неиспользуемых возможностей ЦП.
Сумма значений столбцов %sys и %wio для любой из строк не должна превышать 10—15%. Если вы регулярно замечаете, что эта цифра выше названной величины, значит, настраиваемая система испытывает чрезмерно высокое число переключений контекстов и прерываний (%sys), а также значительное число ожиданий ввода/вывода (%wio). Если наблюдаются такие высокие цифры, постарайтесь найти причину их появления. В 99 случаях из 100 это будут проблемы приложения.
Использование устройств Для получения цифр использования устройств до-
статочно выполнить команду sar -d
информацию об имени устройства, проценте занятости названного устройства,
средней длине очереди к устройству (avque), количестве операций чтения и за-
писи в секунду (r+w/s), переданных блоках (blks/s в 512-байтовых порциях),
среднем времени ожидания для каждой операции ввода/вывода в течение 5-се-
интервала измерения производительности в миллисекундах) и
статочно выполнить команду sar -d
5
1000. Эта команда предоставляет полезнуюинформацию об имени устройства, проценте занятости названного устройства,
средней длине очереди к устройству (avque), количестве операций чтения и за-
писи в секунду (r+w/s), переданных блоках (blks/s в 512-байтовых порциях),
среднем времени ожидания для каждой операции ввода/вывода в течение 5-се-
интервала измерения производительности в миллисекундах) и
среднем времени ожидания, необходимом для обслуживания операции ввода/вывода (avserv). Повторим, что сопоставимые установки и значения доступны в среде монитора производительности Windows NT для объекта Logical Disk Object.
Использование устройств начинает отличаться от оптимального после того, как процент использования устройства (%busy) превысит 60%. Кроме того, имеется прямая корреляция между увеличением процента занятости и средней длиной очереди к устройству, средним временем ожидания и средним временем
обслуживания (avque, avwait и avserv). Для современных дисковых систем (с до-
статочно большим размером дискового кэша) значение avserv порядка 100 млс
высоким. Если в настраиваемой системе встречаются такие
статочно большим размером дискового кэша) значение avserv порядка 100 млс
высоким. Если в настраиваемой системе встречаются такие
значения, необходимо определить причины их возникновения.
Замечание
Если у вас используются системы памяти от третьих фирм,
необходимо вложить деньги в приобретение инструментальных средств, которые предоставят сведения о дисковых массивах. Это связано с тем, что, как оказалось, информация, получаемая для дисковых массивов при выполнении команды sar -d, не является достоверной. В соответствии с ней мы, якобы, никогда не наблюдаем реальной конкуренции за ввод/вывол и узких мест, даже в тех случаях, когда точно известно, что они есть. Доказательства их существования можно найти с помощью событий ожидания Oracle. Этот феномен обязан своим появлением наличию нескольких уровней кэша между тем, что рассматривается как устройство
операционной системы, и тем, что в действительности является диском устройства массовой памяти.
< Предыдущая | Следующая > |
---|