obliczanie dni do zapełnienia dysku

9

Używamy grafitu do śledzenia historii wykorzystania dysku w czasie. Nasz system alarmowy analizuje dane z grafitu, aby ostrzec nas, gdy ilość wolnego miejsca spadnie poniżej określonej liczby bloków.

Chciałbym się inteligentniejsze alarmy - co ja naprawdę dbają o to, „jak długo mam przed muszę zrobić coś o wolnej przestrzeni”, na przykład jeśli pokazuje trend, który w ciągu 7 dni będę zabrakło dysku spacja następnie podnieś Ostrzeżenie, jeśli jest on krótszy niż 2 dni, podnieś Błąd.

Standardowy interfejs grafitu na desce rozdzielczej może być całkiem sprytny dzięki pochodnym i pasmom pewności Holta Wintersa, ale jak dotąd nie znalazłem sposobu na przekonwertowanie tego na przydatne parametry. Nie przeszkadza mi także dzielenie liczb na inne sposoby (po prostu wyodrębnij surowe liczby z grafitu i uruchom skrypt, aby to zrobić).

Jedną z komplikacji jest to, że wykres nie jest płynny - pliki są dodawane i usuwane, ale ogólny trend w czasie zwiększa wykorzystanie miejsca na dysku, więc być może trzeba przyjrzeć się lokalnym minimum (jeśli spojrzymy na metrykę „bez dysku”) ) i narysuj trend między rynnami.

Czy ktoś to zrobił?

Amos Shapira
źródło
jaka jest twoja infrastruktura? na przykład, jeśli jesteś domem vmware, możesz spojrzeć na ich produkty Operations Manager, które wykonują tego rodzaju predykcyjny widok miejsca na dysku.
Chopper3
The volume of crap people have to store will expand to fill the disk available.- Old Sysadmin Axiom
voretaq7
Nasze serwery są podzielone między VMware VM używającymi IBM XIV dla dysków, a KVM używającymi lokalnych SD. Nie jestem pewien, czy mamy dostęp do tego rodzaju informacji (mój zespół nie zarządza VMware ani XIV) i wolałbym rozwiązanie niezależne od produktu.
Amos Shapira,

Odpowiedzi:

8

Szczerze mówiąc „Days Until Full” to naprawdę kiepska metryka - systemy plików stają się NAPRAWDĘ GŁUPIE, gdy zbliżają się do 100% wykorzystania.
Naprawdę polecam stosowanie tradycyjnych progów 85%, 90%, 95% (odpowiednio ostrzeżenie, alarm i krytyczna konieczność naprawienia tego TERAZ) - powinno to dać dużo czasu na ostrzeżenie na nowoczesnych dyskach (powiedzmy, że dysk o pojemności 1 TB: 85% terabajta wciąż pozostawia ci dużo miejsca, ale zdajesz sobie sprawę z potencjalnego problemu, o 90% powinieneś planować rozszerzenie dysku lub jakieś inne ograniczenie, a przy 95% terabajta zostało ci jeszcze 50 GB i powinieneś je naprawić.

Zapewnia to również, że twój system plików działa mniej więcej optymalnie: ma dużo wolnego miejsca na tworzenie / modyfikowanie / przenoszenie dużych plików.

Jeśli dyski nie są nowoczesne (lub wzorzec użytkowania wymaga wyrzucania na dysk większej ilości danych), możesz łatwo dostosować progi.


Jeśli nadal używasz metryki „dni do pełnego”, możesz wyodrębnić dane z grafitu i wykonać matematykę. Narzędzia monitorujące IBM wdrażają wskaźniki do pełnego wykorzystania na kilka dni, które mogą dać ci wyobrażenie o tym, jak je wdrożyć, ale w zasadzie bierzesz tempo zmian między dwoma punktami w historii.

Ze względu na twoje zdrowie psychiczne możesz użyć pochodnej z Grafitu (która da ci szybkość zmian w czasie) i projektować ją, ale jeśli NAPRAWDĘ chcesz otrzymywać „inteligentniejsze” alerty, sugeruję stosowanie dziennej i tygodniowej stopy zmian (obliczonej na podstawie szczytowego zużycia w ciągu dnia / tygodnia).

Konkretna używana projekcja (najmniejsza szybkość zmian, największa szybkość zmian, średnia szybkość zmian, średnia ważona itp.) Zależy od środowiska. Narzędzia IBM oferują tak wiele różnych widoków, ponieważ naprawdę trudno jest stworzyć jeden uniwersalny wzór.


Ostatecznie żaden algorytm nie będzie bardzo dobry w wykonywaniu tego rodzaju obliczeń, jakie chcesz. Wykorzystanie dysku zależy od użytkowników, a użytkownicy są antytezą modelu Rational Actor: wszystkie twoje prognozy mogą wyjść poza okno z jedną szaloną osobą, która decyduje, że dzisiaj będzie dzień, w którym wykonają pełny zrzut pamięci systemowej do swojego katalog domowy. Właśnie dlatego.

voretaq7
źródło
Dziękuję za twoje spostrzeżenia. Widzę twoje punkty. Nadal uważam, że stałe progi po prostu próbują odzwierciedlić „jak długo muszę zaradzić?” i czuje się trochę uzasadniony komentarzem „Dostosuj swoje progi”. Proste pochodne grafitu nie działają, ponieważ oryginalny wykres nie jest gładki. Dzięki za wskaźnik do narzędzi IBM, to, co opisujesz, brzmi dokładnie tak, jak to, o czym zacząłem myśleć (wyodrębnij dwa ostatnie minimum i oblicz z nich nachylenie).
Amos Shapira,
Z pewnością miarą „dni do pełnego” jest to, że przy statycznych progach 85/90/95 nie masz pojęcia, jak szybko zapełnia się dysk? Jasne, zdajesz sobie sprawę z potencjalnego problemu, ale skąd możesz wiedzieć, czy masz dni, aby go rozwiązać, czy tygodnie / miesiące?
Uważam, że to naprawdę interesujące, że miałbyś taką opinię. Pozwólcie, że ułożę to w ten sposób: Twoja firma ma proces zaopatrzenia, który trwa około 6 tygodni od pierwszego żądania większej liczby dysków twardych do dnia, w którym dyski te zostaną faktycznie zainstalowane w pudełkach i rozpocznie się redystrybucja obciążenia. Biorąc pod uwagę, że 6-tygodniowy przedział czasowy na jakim dysku% musisz zostać powiadomiony, aby móc zainstalować dysk na czas? 80%? 75%? Faktem jest, że nie wiesz, dopóki nie włożysz wysiłku w obliczenie tempa wzrostu.
JHixson
2

Niedawno wdrożyliśmy niestandardowe rozwiązanie tego problemu przy użyciu regresji liniowej.

W naszym systemie głównym źródłem wyczerpania dysku są zbłąkane pliki dziennika, które nie są obracane.

Ponieważ rosną one bardzo przewidywalnie, możemy wykonać regresję liniową wykorzystania dysku (np. z = numpy.polyfit(times, utilization, 1)), A następnie obliczyć 100% oceny na podstawie modelu liniowego (np. (100 - z[1]) / z[0])

Wdrożonej wygląd wdrożeniowe, jak to przy użyciu Ruby i GSL, chociaż prace NumPy całkiem dobrze.

W tym tygodniu dane o średnim zużyciu w tym tygodniu w odstępach 90 minut (112 punktów) były w stanie wyselekcjonować potencjalnych kandydatów na wyczerpanie dysku bez nadmiernego hałasu.

Klasa w gist jest zawinięta w klasę, która pobiera dane od scouta, ostrzega o poluzowaniu i wysyła pewne dane telemetryczne środowiska wykonawczego do statsd. Zostawię to trochę, ponieważ jest specyficzne dla naszej infrastruktury.

matschaffer
źródło
Zaktualizowałem odpowiedź o kilka informacji teraz, gdy ją wprowadziliśmy.
matschaffer,
1
Właśnie znalazłem zabawną gotcha z takim podejściem. Mamy również 90% alarmów. Jeden z naszych gospodarzy rozwijał się tak stopniowo, że uderzył w 90% i uruchomił ten alarm, mimo że wciąż miał ponad tydzień, zanim trafił w 100%, więc alarm ostrzegawczy nigdy nie zadziałał;) Chyba powinienem użyć (90 - z[1]) / z[0]zamiast tego.
matschaffer