2.4. Объекты наблюдения

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

К сожалению, не всё так просто. Рассмотрим, например, диск компьютера. Чтобы вы хотели знать о его производительности?

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

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

2.4.1. Наблюдение за использованием процессора

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

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

Пользователь/Система

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

Переключения контекстов

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

Прерывания

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

Исполняемые процессы

Процесс может находиться в разных состояниях, в частности:

  • ждать завершения операции ввода/вывода

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

В этих состояниях процессу не нужен процессор.

Однако, в конце концов, состояние процесса меняется и он становится исполняемым. Как и следует из имени, исполняемый процесс будет исполняться, как только ему будет выделено процессорное время. Однако, если в определённый момент времени существует несколько исполняемых процессов, все, кроме одного [1], должны ждать своей очереди. Наблюдая за числом исполняемых процессов, можно определить, насколько ваша система зависит от процессора.

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

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

2.4.2. Наблюдение за пропускной способностью

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

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

В число наиболее распространённых показателей пропускной способности входят следующие:

Байт получено/передано

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

Скорость интерфейсов и их счётчики

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

Скорость передачи

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

2.4.3. Наблюдение за использованием памяти

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

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

Страниц загружено/выгружено

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

Активных/неактивных страниц

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

Свободных, разделяемых, буферизованных и кэшированных страниц

Эти показатели более подробно раскрывают упрощённые показатели активных/неактивных страниц. Данные показатели позволяют получить общую картину распределения памяти.

Страниц подкачки загружено/выгружено

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

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

2.4.4. Наблюдение за хранилищем

Наблюдение за хранилищем обычно осуществляется на двух уровнях:

Это объясняется тем, что в системе могут быть ужасные проблемы в одной области, при этом в другой области всё будет идеально. Например, может просто закончиться место на диске, и при этом не будет абсолютно никаких проблем с производительностью. И наоборот, можно иметь диск, свободный на 99%, но при этом его производительность будет далека от идеальной.

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

В любом случае при наблюдении за хранилищем полезны следующие показатели:

Объём свободного места

Свободное место на диске — это ресурс, за которым внимательно следят, наверное, все системные администраторы; сложно найти администратора, который никогда его не контролирует (и не применяет для этого какие-то автоматические средства).

Показатели, связанные с файловой системой

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

Скорость передачи

Этот показатель даёт хорошую возможность определить, достигло ли конкретное устройство предела пропускной способности.

Скорость чтения/записи

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

Замечания

[1]

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

[2]

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