Red Hat Enterprise Linux 4: Введение в системное администрирование | ||
---|---|---|
Назад | Глава 2. Мониторинг ресурсов | Вперёд |
Как было сказано ранее, в любом компьютере представлены следующие ресурсы: процессор, пропускная способность, память и хранилище. На первый взгляд может показаться, что мониторинг должен заключаться в наблюдении за этими четырьмя различными ресурсами.
К сожалению, не всё так просто. Рассмотрим, например, диск компьютера. Чтобы вы хотели знать о его производительности?
Сколько на нём свободного места?
Сколько операций ввода/вывода в среднем он выполняет за секунду?
Сколько времени уходит в среднем на каждую операцию?
Сколько было выполнено операций чтения? Сколько операций записи?
Какой объём данных в среднем считывается/записывается за одну операцию?
Это далеко не полный перечень, есть и другие способы анализа производительности диска. Главное, что необходимо понять — с каждым ресурсом связано множество разного рода данных.
В следующих разделах рассматриваются типы показателей использования ресурсов, которые могут быть полезны для основных видов ресурсов.
В простейшем виде наблюдение за использованием процессора сводится к элементарной проверке, достигает ли загрузка процессора 100%. Если процессор постоянно загружен менее чем на 100%, чтобы ни происходило в системе, значит он обладает запасом вычислительной мощности.
Однако компьютер, в котором процессор не загружается на 100% хотя бы кратковременно — большая редкость. Поэтому возникает необходимость исследовать другие, более подробные данные. Более глубокий анализ позволяет определить, куда уходит большая часть вычислительной мощности вашего процессора. Вот лишь некоторые популярные показатели использования процессора:
Процентное отношение времени, потраченного на выполнение на уровне пользователя, ко времени, потраченному на уровне системы, позволяет определить, вызвана ли нагрузка процессора работой приложений или самой операционной системы. Обычно лучше, когда больше времени выделяется процессам пользователя (если, конечно, пользователи удовлетворены производительностью), тогда как большая загрузка процессора в режиме системы обычно является признаком проблем, требующих дальнейшего исследования.
Переключение контекста происходит, когда процессор приостанавливает выполнение одного процесса и начинает выполнять другой. Так как переключение контекста выполняет операционная система и на это требуется время процессора, слишком частые переключения контекста обычно вызывают увеличение нагрузки на уровне системы.
Как следует из названия, прерывание — это событие, когда процессор неожиданно прерывает выполнение программы. Прерывания могут быть вызваны аппаратно (например, устройством ввода/вывода, выполнившим операцию) или программно (такие прерывания управляют выполнением приложений). Так как прерывания должны обрабатываться на уровне системы, большое количество прерываний также увеличивает нагрузку на уровне системы.
Процесс может находиться в разных состояниях, в частности:
ждать завершения операции ввода/вывода
ждать, пока подсистема управления памяти обработает ошибку обращения к странице.
В этих состояниях процессу не нужен процессор.
Однако, в конце концов, состояние процесса меняется и он становится исполняемым. Как и следует из имени, исполняемый процесс будет исполняться, как только ему будет выделено процессорное время. Однако, если в определённый момент времени существует несколько исполняемых процессов, все, кроме одного [1], должны ждать своей очереди. Наблюдая за числом исполняемых процессов, можно определить, насколько ваша система зависит от процессора.
Другие показатели производительности, отражающие использование процессора, обычно связаны с различными службами, которые операционная система представляет процессам. В их число могут входить показатели, связанные с управлением памятью, обработкой операций ввода/вывода и т. д. Эти показатели также иллюстрируют, что при анализе производительности между ними не существует чётких границ. Другими словами, показатели загрузки процессора могут сигнализировать о проблеме в подсистеме ввода/вывода, а показатели использования памяти — о конструктивной ошибке приложения.
Таким образом, проводя анализ производительности, нельзя исследовать показатели по отдельности; извлечь полезную и значимую информацию на основе полученных показателей производительности можно, только изучив общую картину.
Наблюдение за пропускной способностью — самый сложный тип наблюдения из описываемых здесь. Объясняется это тем, что показатели производительности обычно связаны с устройствами, тогда как пропускная способность связана с шинами, соединяющими устройства. В случаях, когда общую шину разделяют несколько устройств, по каждому из них вы можете получить вполне разумные показатели, но общая нагрузка на шину, вызванная этими устройствами, будет гораздо выше.
Ещё одна сложность наблюдения за пропускной способностью состоит в том, что получить показатели самих устройств можно далеко не всегда. Особенно это касается системных шин расширения и магистралей передачи данных [2]. И хотя получить показатели пропускной способности со 100% точностью не всегда возможно, часто информации бывает достаточно для проведения определённого анализа, особенно если принимать во внимание связанные показатели.
В число наиболее распространённых показателей пропускной способности входят следующие:
Показатели сетевых интерфейсов отражают использование пропускной способности одной из наиболее осязаемых шин — сети.
Эти показатели могут сигнализировать о многочисленных столкновениях пакетов, ошибках приёма/передачи и других проблемах. Эти показатели (особенно, если они получены с нескольких компьютеров в вашей сети) позволяют провести мини-анализ возникших в сети проблем и, возможно, решить их, не прибегая к помощи более распространённых средств диагностики сети.
Обычно этот показатель имеет значение для блочных устройств ввода/вывода, в частности, дисков и скоростных ленточных накопителей, и даёт возможность определить, не достигнут ли предел пропускной способности данного устройства. Электромеханическая конструкция дисков и ленточных накопителей ограничивает число операций в секунду определённым пределом, и при достижении этого предела их быстродействие быстро падает.
Если есть область, в которой можно найти огромное количество показателей производительности, эта область — использование памяти. Учитывая присущую современным операционным системам сложность подсистемы виртуальной памяти с подкачкой страниц, показателей использования памяти много и они самые разные. И именно в этой области администратор выполняет основную работу по управлению ресурсами.
Ниже представлен поверхностный обзор часто встречающихся показателей использования памяти:
Эти показатели позволяют проследить за перемещением страниц между памятью компьютера и подключенными устройствами хранения (обычно это диски). Высокие значения обоих показателей могут означать, что компьютеру не хватает физической памяти, и он выполняет подкачку, или тратит больше ресурсов на загрузку и выгрузку страниц, чем собственно на выполнение приложений.
Эти показатели говорят, насколько интенсивно используются страницы, расположенные в памяти. Небольшое количество неактивных страниц может быть признаком нехватки физической памяти.
Эти показатели более подробно раскрывают упрощённые показатели активных/неактивных страниц. Данные показатели позволяют получить общую картину распределения памяти.
Эти показатели иллюстрируют работу механизма подкачки в целом. Большие значения могут быть признаком нехватки физической памяти.
Чтобы анализ использования памяти был успешным, необходимо хорошо понимать, как работает подсистема виртуальной памяти с подкачкой страниц. Хотя эта тема сама по себе заслуживает отдельной книги, основные понятия обсуждаются в главе 4 Физическая и виртуальная память. Прочитав эту главу и проведя время, наблюдая за реальной системой, вы получите базовые знания, необходимые для дальнейшего изучения этой темы.
Наблюдение за хранилищем обычно осуществляется на двух уровнях:
наблюдение за использованием диска
наблюдение за проблемами производительности, связанными с хранилищем.
Это объясняется тем, что в системе могут быть ужасные проблемы в одной области, при этом в другой области всё будет идеально. Например, может просто закончиться место на диске, и при этом не будет абсолютно никаких проблем с производительностью. И наоборот, можно иметь диск, свободный на 99%, но при этом его производительность будет далека от идеальной.
Однако, в среднем компьютере скорее всего будет наблюдаться нехватка ресурсов в обеих областях, хотя, возможно, в разной степени. И поэтому, также вероятно, что в некоторой степени проблемы в одной области отразятся в другой. Чаще всего эта взаимосвязь выражается в снижении производительности диска, когда на нём практически не остаётся свободного места, хотя при больших нагрузках значительное снижение производительности может привести к тому, что приложения не смогут продолжать работу.
В любом случае при наблюдении за хранилищем полезны следующие показатели:
Свободное место на диске — это ресурс, за которым внимательно следят, наверное, все системные администраторы; сложно найти администратора, который никогда его не контролирует (и не применяет для этого какие-то автоматические средства).
Эти показатели (в частности, число файлов/каталогов, средний размер файла) дают более детальное представление об использовании диска, чем просто объём свободного места. Поэтому, проанализировав эти показатели, системные администраторы могут оптимизировать производительность системы, так как нагрузка, характерная для файловой системы с множеством маленьких файлов, значительно отличается от нагрузки файловой системы с одним огромным файлом.
Этот показатель даёт хорошую возможность определить, достигло ли конкретное устройство предела пропускной способности.
Чуть более подробные, чем показатель скорости передачи, эти показатели позволяют системному администратору лучше понять характер нагрузки устройства хранения. Это может быть важно, так как в некоторых технологиях хранения скоростные характеристики чтения и записи сильно отличаются.
[1] | Предполагается, что в компьютере установлен один процессор. |
[2] | Более подробно о шинах, магистралях данных и пропускной способности рассказывается в главе 3 Пропускная способность и вычислительная мощность. |