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

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

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

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

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

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

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

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

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

Основний показник інтенсивності запитів до диска. Показує загальна кількість операцій введення \ виводу, оброблених (завершених) диском протягом 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 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 (кількість байт, що передається при виконанні однієї операції записи).

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

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

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

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

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

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

висновок

Для того, щоб адекватно оцінити отримані дані, необхідно точно представляти фізичну структуру системи зберігання. В першу чергу важливий тип використовуваних дисків (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.

Схожі статті