Анализируем производительность системы

Аренда сервера или виртуальной машины в сети становятся все доступнее. На момент написания статьи аренда мощного 4-х ядерного сервера с неограниченным трафиком обходится всего в 70-100 долларов в месяц.

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

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

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

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

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

Для анализа данных производительности мы будем использовать «Сводные таблицы» из Microsoft Excel. В качестве примера данных используется записанный в CSV файл результат работы Perfomance Monitor. Это стандартный инструмент Windows Server, однако аналогично можно обработать данные, полученные на любой системе.

Начало – сбор данных


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

Для сбора данных Windows сервера нужно предварительно настроить Performance Monitor.

Performance Monitor

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

В Windows Server 2008 есть заранее заготовленные наборы для сбора сведений с помощью Performance Monitor. Вы можете воспользоваться ими, изменив формат записи данных на файл CSV, или настроить свой.

Для оценки базовой производительности сервера достаточно собрать информацию
  • Average Disk Queue — для жестких дисков
  • % Processor Tme — для процессора и процессов
  • Committed Bytes — для оперативной памяти

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

Для дальнейшего анализа данные лучше сразу сохранить в CSV файл.

Начинаем анализ


Для анализа я использую сводные таблицы Excel 2010. Аналогичный функционал есть в Microsoft Office и более ранних версий, а также в последних OpenOffice.

Сначала нужно загрузить собранные данные в документ.

Вставляем набор исходных данных для анализа

Для вставки данных перейдите в раздел «Данные», затем выберите «Получение внешних данных» и «Из текста»:



Выберите файл, в котором сохранены данные мониторинга и нажмите «Импорт»:



Excel запустит мастер импорта данных.

Performance Monitor использует запятую в качестве разделителя. Самый простой вариант — когда на системе, где собирались данные, и вашей одинаковые региональные настройки.

Укажем мастеру нужные параметры:





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

Для этого выбрать все столбцы данных в мастере, и нажать «Подробнее»:





Теперь нажимаем «ОК» и «Готово».

Осталось указать, куда поместить данные в документе:



Excel импортировал данные в документ:



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

В 2010 версии достаточно нажать Ctrl-L. Excel автоматически выделил все ячейки, заполненные данными:







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

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



Создадим сводную таблицу с графиком

Выберите «Вставка», затем «Сводная диаграмма»:





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



Дальнейший анализ будет происходить «like a Charm»

Посмотрим на число запросов в очереди к жесткому диску.

На поля осей размещаем время, а в значения — Avg. Disk Queue Length:



В данном случае Excel посчитал количество измерений.

Изменим количество на среднее число за период:





Я также подкорректировал заголовок, чтобы столбцы сводной таблицы были не слишком большими:



Собственно анализ

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



Поле «Дата» можно сгруппировать:





Теперь можно свернуть сводную таблицу до дней:



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



А так может выглядеть исходный отчет с рабочей системы:
 


Успехов в измерениях!
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 12

    +36
    а ещё можно поставить Zabbix, например, и не страдать херней
      +1
      Статья про анализ данных.
      Поставить Zabbix и не страдать херней — отличный совет любому админу )
      +3
      До чего-же приятно видеть хотя-бы скриншоты от человека который! умеет! работать с Excel.
        +3
        отличая статья о том как работать с экселем, джва года ждал!
          +5
          В мемориз — полезная статья по работе с экселем! :)
            +5
            Эксель да, сервера тут причём?
              +1
              Ну про эксель круто конечно, но зачем, если можно в том же перформанс мониторе посмотреть собранные данные и построить необходимые отчеты за нужные периоды времени?
                0
                В Екселе можно отчёты удобно сгруппировать по группам серверов. Чтобы наглядно обосновать дополнительные расходы на память для SQL-фермы, например.
                  +1
                  Я в таком случае снимаю скриншоты. А вообще юзаю систему мониторинга, которая мне строит нужные отчеты (актуально когда больше 2-3 серверов).
                    –1
                    Без системы мониторинга — никуда.

                    Вопрос в том, как оценить, где именно не хватает производительности, когда тормозит приложение на ферме из 12 серверов?
                    В какое время и где возникает перегрузка?

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

                    Вы правы — если система мониторинга позволяет анализировать собранные данные в любых ракурсах — она решает ту же задачу.
                    Многие предпочитают специализированные инструменты — Zabbix — для мониторинга, Excel — для анализа
                +2
                много видел изврата… но это круто )
                  0
                  facepalm.jpg

                  Only users with full accounts can post comments. Log in, please.