Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Лічильники продуктивності для дискової підсистеми.

Дискова підсистема досить часто стає вузьким місцем в роботі додатків, тому дуже важливо вміти діагностувати проблеми з дисками. Одним з основних інструментів для спостереження за продуктивністю дискової підсистеми є лічильники продуктивності, про які і піде сьогодні мова.

Для спостереження за дисками можна вибрати два типи об'єктів:

• Physical Disk - як об'єкт моніторингу виступає те, що система визначає як фізичний пристрій. Це може бути як окремий жорсткий диск, так і кілька дисків, об'єднаних в RAID-масив. Якщо фізичний диск розбитий на логічні розділи (томи), то лічильники видають сумарне значення для всіх томів, які перебувають на диску.
• Logical Disk - тут як об'єкт моніторингу виступає логічний розділ. Perfmon ідентифікує томи по букві диска або точці монтування (якщо те примонтовано як папка). Якщо фізичний диск розбитий на кілька томів, то лічильники будуть видавати значення для кожного вибраного томи окремо.Можлива і зворотна ситуація, коли при використанні динамічних дисків тому може бути розтягнутий на кілька фізичних пристроїв, тоді лічильники покажуть значення відразу для всіх фізичних дисків, що входять до складу логічного.

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



Приступимо до опису лічильників.

% Disk Time

Показує відсоток загальної завантаженості диска. Являє собою суму значень лічильників% Disk Read Time (відсоток завантаженості диска операціями читання) і% Disk Write Time (відсоток завантаженості диска операціями запису).Теоретично його значення повинні бути в діапазоні від 0 до 100%, однак це вірно тільки для одиночного диска. При використанні RAID-масивів часто можна побачити значення цього лічильника більше 100%.

% Idle Time

Показує час простою диска, тобто час, протягом якого диск залишався в стані спокою, що не обробляючи запити читання \ запису.На відміну від% Disk Time лежить строго в діапазоні від 100% (повний спокій) до 0 (повне завантаження).

Disk Transfers/sec

Основний показник інтенсивності запитів до диска. Показує загальна кількість операцій введення \ виводу, оброблених (завершених) диском протягом 1 секунди (Input/Output Operations Per Second, IOPS).Цей лічильник дозволяє приблизно оцінити, наскільки навантаження на диски близька до граничної. Для дисків, що працюють в нормальному режимі, можна орієнтуватися на наступні значення: 80-160 IOPS для одиночного жорсткого диска SATA або SAS, 1800-5000 IOPS для одиночного SSD диска. Для уточнення можна скористатися лічильниками Disk Reads/sec (кількість оброблених за секунду запитів на читання) і Disk Writes/sec (кількість оброблених за секунду запитів на запис).

Avg. Disk sec/Transfer

Середній час в секундах, необхідний для виконання диском однієї операції читання або запису. Складається з значень Avg. Disk sec/Read (час на виконання операції читання) і Avg. Disk sec/Write (час на виконання операції запису). Для високонавантажених систем, таких як сервера БД, значення Avg.Disk sec/Transfer не повинно перевищувати 0,1, для рядових серверів допустимо значення 0,25.

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

Avg. Disk Queue Length

Середня довжина черги запитів до диска. Відображає кількість запитів до диска, що очікують обробки протягом певного інтервалу часу. Нормальним вважається черга не більше 2 для одиночного диска. Якщо в черзі більше двох запитів, то можливо диск перевантажений і не встигає обробляти запити, що надходять.Уточнити, з якими саме операціями не справляється диск, можна за допомогою лічильників Avg. Disk Read Queue Length (черга запитів на читання) і Avg. Disk Wright Queue Length (черга запитів на запис).

Значення Avg. Disk Queue Length не вимірюється, а розраховується за законом Літтла з математичної теорії черг.Згідно з цим законом, кількість запитів, які очікують обробки, в середньому дорівнює частоті надходження запитів, помноженої на час обробки запиту. Тобто в нашому випадку Avg. Disk Queue Length = (Disk Transfers/sec) * (Avg. Disk sec/Transfer).

Avg. Disk Queue Length наводиться як один з основних лічильників для визначення завантаженості дискової підсистеми, однак для його адекватної оцінки необхідно точно представляти фізичну структуру системи зберігання.Наприклад, для одиночного жорсткого диска критичним вважається значення більше 2, а якщо диск розташовується на RAID-масиві з 4-х дисків, то хвилюватися варто при значенні більше 4 * 2 = 8.

Current Disk Queue Length

Поточна довжина черги запитів до диска. Показує кількість запитів, які очікують обробки в даний конкретний момент.По суті це миттєве значення (зріз) поточної черги запитів.

Disk Bytes/sec

Середня швидкість обміну даними з диском, або швидкість читання \ запису. Показує загальна кількість байт, відправлених на диск (запис) і з диска (читання) протягом однієї секунди, тим самим дозволяючи оцінити пропускну здатність дискової системи.Складається з значень Disk Read Bytes/sec (швидкість читання) і Disk Write Bytes/sec (швидкість запису). Граничні значення сильно залежать від типу диска: наприклад для одиночного жорсткого диска максимальна швидкість читання \ запису лежить в межах 160-250Mb/s, для одиночного SSD - близько 550-600Mb/s.

Avg.Disk Bytes/Transfer

Середня кількість байт, що передається при виконанні однієї операції читання \ запису. Чим більше розмір переданих блоків, тим менше навантаження на диск. При нормальній роботі цей параметр повинен бути більше 20Kb, значення менше говорять про велику кількість дрібних запитів, т.е. про неефективне використання дискової системи. Більш точну інформацію можна отримати з значень лічильників Avg. Disk Bytes/Read (кількість байт, що передається при виконанні однієї операції читання) і Avg. Disk Bytes/Write (кількість байт, що передається при виконанні однієї операції записи).

Split IO/Sec

Частота поділу операцій введення \ виводу на кілька операцій. Значення, відмінне від нуля показує, що запитуються занадто великі блоки даних, які не можуть бути передані за одну операцію. Це може бути наслідком сильної фрагментації диска.



І тільки для об'єктів Logical Disk є ще два лічильника , що дозволяють визначити наявність вільного місця на диску.

% Free Space

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

Free Megabytes

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



Висновок

Для того, щоб адекватно оцінити отримані дані, необхідно точно представляти фізичну структуру системи зберігання.В першу чергу важливий тип використовуваних дисків (HDD, SSD), інтерфейс (SATA, SAS, FC, PCIe), швидкість обертання HDD (7200, 10k, 15k). При використанні RAID-масивів потрібно знати тип масиву (0, 1, 5, 10 і т.д.) і кількість дисків у масиві.

І ще, при оцінці продуктивності дискової підсистеми обов'язково треба враховувати тип навантаження, створюваної додатками.В ідеалі є два типи дискових навантажень:

1. Велика кількість випадкових операцій читання \ запису, дані обробляються невеликими блоками. Цей тип навантаження характерний для серверів баз даних. При такому типі навантаження найбільш важливим параметром є кількість IOPS-ів.Основні лічильники - Disk Transfers/sec, Avg. Disk sec/Transfer і звичайно Avg. Disk Queue Length.

2. Послідовне читання \ запис великих блоків даних. Таке навантаження характерна, наприклад, для серверів потокового відео. У цьому випадку найбільш важлива пропускна здатність дискової системи, яку показує Disk Bytes/sec..