Skip to content

Latest commit

 

History

History
100 lines (62 loc) · 14.5 KB

README.md

File metadata and controls

100 lines (62 loc) · 14.5 KB

Windows-Agent-Custom

Русифицированная версия стандартного шаблона Zabbix (от 14.08.2022).

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

Показатели и графики на дисковом массиве при нагрузке CrystalDiskMark:

SEQ1M запись контрольного файла будет производиться последовательно (Sequential), как и его чтение, с размером блока 1МБайт. Именно результат теста Seq Q32T1 стоит сравнивать со скоростью носителя, указанной производителем.
RND4K (Random 4KiB) Q32T1 лучше использовать для тестирования раздела диска с операционной системой, т.к. ОС в основном работает с небольшими блоками данных, а тестирование будет производиться блоками размером 4 КБ при единственном потоке с глубиной очереди 32.
Потоки (Threads) количество одновременно выполняемых операций чтения/записи, увеличение этого параметра приводит к повышению нагрузки на носитель.
Глубина очереди число запросов, обрабатываемых тестируемым накопителем. Чем больше глубина, тем больший объём информации будет обработан диском.

Image alt

Image alt

Тестирование DiskSpd:

diskspd.exe –c8G -d300 -r -w40 -t8 -o32 -b64K -Sh -L testfile1.dat > DiskSpeedResults.txt
-c8G размер файла, превышающий размер кэша контроллера СХД
-d300 продолжительность тестирования в секундах (5 минут)
-r произвольное чтение/запись (если нужно тестировать последовательный доступ, используется –s)
-t8 количество потоков
-w40 соотношение операций записи к операциям чтения 40% / 60%
-o32 длина очереди
-b64K размер блока
-Sh не использовать кэширование
-L измерять задержки (Latency)

Image alt

Тестирование на локальном диске SSD:

Image alt

Сравнение производительности:

Image alt

Image alt

Items Physical Disk:

Дисковый массив (Storage Array) - это RAID или SAN, который представляется как один логический диск. Если происходит чтение с такого логического диска, то это равносильно тому, что ввод-вывод будет направлен только на один диск массива (то есть, глубина очереди = 1), и всего один из дисков обслужит ввод-вывод. Остальные диски будут невостребованны, пока активность направленных на эту группу дисков в массиве из расчёта на один диск не превысит, например, 180 IOPS - максимальный порог одного диска HDD SATA 15к оборотов на шпинделе. При глубине очереди 2, вероятно, что пара запросов ввода-вывода распределилась между разными дисками, таким образом, два диска будут работать с глубиной очереди 1, а остальные диски останутся неактивными. Очередь к одному диску массива, т.е. логическому диску станет больше единицы только тогда, когда нагрузка на массив превысит возможности обслуживания без очередей запросов ко всем дискам (IOPS всех дисков).

Disk Time - % Disk Read Time (% активности диска при чтении) и % Disk Write Time (% активность диска при записи) — процент активности диска при операции чтения и записи диска. Показания этого счетчика в RAID-массиве охватывают больше чем один физический диск, значения может быть в диапазоне от 0 до 100% для одиночного диска, и выше в массиве. Этот счетчик надо анализировать вместе с % Idle Time.

Idle 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 — количество обращений чтения в секунду. В нормальном режиме интенсивность обращений не должна превышать их индивидуальным пределам, умноженным на количество дисков в массиве. В режиме чтения для различных типов RAID могут учитываться не все диски, например в RAID-6 в массиве из шести дисков скорость чтения равна скорости чтения с четырех дисков (с оставшихся двух считываются контрольные суммы).

Disk Writes/sec — количество обращений записи в секунду, то есть частота выполнения операций записи на диск.

Анализировать корректно Disk Reads/sec и Disk Writes/sec можно только с учетом текущей (Current) длины очереди Current Disk Queue Length и средней (Average) длины очередей чтения/записи Avg. Disk Read Queue Length и Avg. Disk Write Queue Length. Если Current Disk Queue Length или Avg. Disk Read Queue Length и Avg. Disk Write Queue Length существенно выходят за штатные пределы — скорее всего, реальная потребность в IOPS дисковой подсистемы будет в разы выше, чем фиксируют Disk Reads/sec и Disk Writes/sec. К примеру, если Current Disk Queue Length для массива RAID 10 из 4 дисков в какие-то интервалы времени достигает показателей 12-16, с пиками до 100 — то реальный спрос на операции ввода/вывода в эти моменты у приложений превышает возможности дисковой подсистемы в 2-3 раза.

Avg. Disk Queue Length - средняя длина очереди диска. Данный показатель указывает, сколько операций ввода/вывода в среднем ожидают, когда жесткий диск станет доступным. Показатель не должен превышать количество физических дисков в массиве более чем в 1,5-2 раза (кол-во запросов на диск). В приложениях класса SQL Server, Exchange Server его среднее значение лучше удерживать на уровне 0.2. Уточнить, с какими именно операциями не справляется диск, можно с помощью счетчиков Avg. Disk Read Queue Length (очередь запросов на чтение) и Avg. Disk Wright Queue Length (очередь запросов на запись).

Avg. Disk Queue Length = (Disk Transfers/sec) * (Avg. Disk sec/Transfer) - количество запросов ожидающих обработки, равняется частоте поступления запросов, умноженной на время обработки запроса. Уменьшению показателя очереди способствует SSD-кеширование или традиционное увеличение количества дисков в RAID-массиве. Среднюю длину очереди к диску на чтение снижает переход на SSD, а среднюю длину очереди на запись — отказ от вариантов RAID с большим штрафом на запись RAID 5 и RAID 6, в пользу RAID 10.

Current Disk Queue Length - текущая длина очереди запросов к диску. Показывает количество запросов, ожидающих обработки в данный конкретный момент.

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

Avg. Disk sec/Read - среднее время обращения на чтения данных с диска в секундах. Среднее значение счетчика производительности Avg. Disk sec/Read не должно превышать 10 миллисекунд (0,01 сек). Максимальное значение счетчика производительности Avg. Disk sec/Read не должно превышать 50 миллисекунд (0,050 секунды).

Avg. Disk sec/Write - среднее время обращения записи данных на диск в секундах.

Triggers:

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Idle Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN}
{#DEVNAME}: Загрузка диска выше {$VFS.DEV.UTIL.MAX.WARN} в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Transfers/sec",60],15m) > 2000
{#DEVNAME}: IOPS выше 2000 в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Reads/sec",60],15m) > 1000
{#DEVNAME}: IOPS reads выше 1000 в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Disk Writes/sec",60],15m) > 1000
{#DEVNAME}: IOPS writes выше 1000 в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}
{#DEVNAME}: Задержка записи больше {$VFS.DEV.WRITE.AWAIT.WARN} мс в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}
{#DEVNAME}: Задержка чтения больше {$VFS.DEV.READ.AWAIT.WARN} мс в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Transfer",60],15m) > {$VFS.DEV.TRANSFER.AWAIT.WARN:"{#DEVNAME}"}
{#DEVNAME}: Задержка обращений к диску выше {$VFS.DEV.TRANSFER.AWAIT.WARN} мс в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Current Disk Queue Length",60],15m) > 15
{#DEVNAME}: Очередь запросов к диску выше 15 в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Write Queue Length",60],15m) > 10
{#DEVNAME}: Очередь записи выше 10 в течении 15 минут

min(/Windows Agent Custom/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60],15m) > 10
{#DEVNAME}: Очередь чтения выше 10 в течении 15 минут