підрахунок днів до заповнення диска


9

Ми використовуємо графіт, щоб відстежувати історію використання дисків у часі. Наша система оповіщення розглядає дані з графіту, щоб повідомити нас, коли вільний простір опуститься нижче певної кількості блоків.

Мені хотілося б отримати розумніші сповіщення - те, що мене насправді хвилює, - "скільки часу у мене є, перш ніж мені щось зробити про вільний простір?", Наприклад, якщо тенденція показує, що через 7 днів у мене закінчиться диск простір потім підніміть попередження, якщо менше 2 днів, тоді підніміть помилку.

Стандартний інтерфейс інформаційної панелі Graphite може бути досить розумним з похідними та діапазонами довіри Holt Winters, але поки що я не знайшов способу перетворити це на діючі показники. Я також чудово розбиваю цифри іншими способами (просто дістаньте необроблені числа з графіту та запустіть сценарій для цього).

Одним із ускладнень є те, що графік не є рівним - файли додаються та видаляються, але загальна тенденція з часом збільшує використання дискового простору, тому, можливо, потрібно переглянути місцевий мінімум (якщо дивитися на метрику "без диска") ) та намалюйте тенденцію між коритами.

Хтось робив це?


яка ваша інфраструктура? Наприклад, якщо ви є vmware house, ви можете подивитись на їхні продукти Operations Manager, що робить такий вид прогнозування на дисковому просторі.
Chopper3

The volume of crap people have to store will expand to fill the disk available.- Стара аксіома
Сисадміна

Наші сервери розділені між VMware VM, що використовує IBM XIV для дисків, і KVM за допомогою локальних SD. Я не впевнений, що ми маємо доступ до такої інформації (моя команда не керує VMware або XIV), і я вважаю за краще рішення, яке не залежить від продукту.
Амос Шапіра

Відповіді:


8

Чесно кажучи, "Дні до повного" - це дійсно хитра метрика - файлові системи отримують дійсно СТУПІД, коли вони наближаються до 100% використання.
Я дуже рекомендую використовувати традиційні пороги 85%, 90%, 95% (попередження, сигнал тривоги та критичні значення, що вам справді потрібно виправити це - ЗАРАЗ) - це повинно дати вам багато часу на попередження на сучасних дисках (припустимо, 1 ТБ накопичувач: 85% терабайт все ще залишає вам багато місця, але ви знаєте про потенційну проблему; на 90% ви повинні планувати розширення диска або якесь інше пом'якшення, а при 95% терабайт у вас залишилось 50 Гб, і слід добре мати фіксацію в русі).

Це також гарантує, що ваша файлова система функціонує більш-менш оптимально: у неї є багато вільного місця для створення / зміни / переміщення великих файлів.

Якщо ваші диски не сучасні (або ваша схема використання передбачає викид на диск більшої кількості даних), ви можете легко відрегулювати пороги.


Якщо ви все ще налаштовані на використання метрики "днів до повного", ви можете витягти дані з графіту і зробити певну математику на ньому. Інструменти моніторингу IBM впроваджують декілька днів до повних показників, які можуть дати вам уявлення про те, як їх реалізувати, але в основному ви приймаєте швидкість зміни між двома пунктами в історії.

Заради вашого розуму ви можете використовувати похідне від Graphite (що дасть вам швидкість змін у часі) та проектувати, використовуючи це, але якщо ви дійсно хочете "розумніші" сповіщення, я пропоную використовувати щоденну та тижневу швидкість змін (розраховано на основі пікового використання за день / тиждень).

Конкретна проекція, яку ви використовуєте (найменша швидкість змін, найбільша швидкість змін, середня швидкість зміни, середньозважена оцінка тощо), залежить від вашого оточення. Інструменти IBM пропонують так багато різних поглядів, тому що дійсно важко прибити єдиний розмір візерунка.


Зрештою, жоден алгоритм не буде дуже хорошим у виконанні потрібного розрахунку. Використанням диска керуються користувачі, а користувачі - це антитеза моделі Rational Actor: усі ваші прогнози можуть вийти у вікно з одним божевільним людиною, який вирішить, що сьогодні саме день, коли вони збираються виконати повний дамп системної пам'яті до свого домашній каталог. Лише тому що.


Дякуємо за вашу думку. Я бачу ваші моменти. Я все ще думаю, що постійні пороги просто намагаються відобразити "скільки часу я маю переправити?" і відчуваєте дещо посвідчення від коментаря "налаштуйте свої пороги". Прості похідні графіту не працюють, оскільки початковий графік не є рівним. Дякую за вказівник на інструменти IBM, те, що ви описуєте, звучить так само, як я почав думати (витягніть останні два мінімуми і обчисліть нахил з них).
Амос Шапіра

Безумовно, суть метрики "днів до повного" полягає в тому, що зі статичними порогами 85/90/95 ви не знаєте, як швидко заповнюється диск? Звичайно, ви знаєте про потенційну проблему, але як ви можете знати, чи є у вас дні для її вирішення, або тижні / місяці?

Мені дуже цікаво, що ви мали б таку думку. Дозвольте це зрозуміти так: Ваша компанія має процес закупівлі, який займає близько 6 тижнів між початковим запитом на отримання більш жорстких дисків до дня, коли ці жорсткі диски фактично встановлені в коробки, і розпочнеться перерозподіл завантаження. З огляду на те, що 6 тижневих часових рамків, на якому диску% потрібно повідомити, щоб вчасно встановити диск? 80%? 75%? Справа в тому, що ви не знаєте, якщо не докладете певних зусиль для обчислення темпу зростання.
JHixson

2

Нещодавно ми розробили спеціальні рішення для цього за допомогою лінійної регресії.

У нашій системі основним джерелом виснаження диска є бродячі файли журналів, які не обертаються.

Оскільки вони зростають дуже передбачувано, ми можемо виконати лінійну регресію при використанні диска (наприклад, z = numpy.polyfit(times, utilization, 1)), а потім обчислити 100% позначку за даною лінійною моделлю (наприклад, (100 - z[1]) / z[0])

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

Під час подання цього тижня середньостатистичні дані щодо використання з інтервалом 90 хвилин (112 балів) змогли підібрати ймовірних кандидатів на виснаження диска без зайвого шуму.

Клас у суті загорнутий у клас, який витягує дані з розвідника, попереджає про слабкість та надсилає деяку телеметрику часу виконання в statsd. Я залишу цей біт, оскільки він специфічний для нашої інфраструктури.


Я оновив відповідь деякою інформацією тепер, коли ми її розгорнули.
матчшаффер

1
Щойно знайшов кумедний гатч із таким підходом. У нас також є 90% тривог. Один з наших господарів зростав настільки поступово, що він потрапив на 90% і спрацьовував на цій тривозі, хоча до 100% все ще було більше тижня, перш ніж натиснути на 100%, тому попереджувальне сповіщення ніколи не спрацьовувало;) Вгадайте, я повинен використовувати (90 - z[1]) / z[0]замість цього.
матчшаффер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.