Domyślny crontab dla sa1 i sa2 (sar)
Ostatnio przeglądając monitoring New Relic zauważyłem, że na jednej z moich maszyn podczas całkowitej bezczynności pojawia się dość sporo logów. Dane przechowywane na New Relic mają ograniczoną objętość. Dla konta Free limit wynosi 100 GB na miesiąc, a ja podczas jałowej pracy systemu generuję 22 GB “z powietrza” (na tą wartość wpływa wiele czynników - w wolnym czasie próbuję ją optymalizować - lwia część to metryki CPU, pamięci i procesy). Logi zajmują na New Relic raptem 20 MB, ale mimo to miło jest mieć porządek i nie zbierać śmieci. Jak to możliwe, że przy jałowej pracy CentOS produkuje 20 MB? Winowajcą są dwa domyślne zadania, które CentOS tworzy po instalacji systemu.
Generują one poniższy log:
Dec 11 04:40:01 wombat systemd: Created slice User Slice of root. |
Nie ma w tym tak naprawdę nic dziwnego, bo powyższe wpisy w /var/log/messages
będą pojawiać się, gdy tylko crontab wykona jakieś zadanie. Nie lubię marnotrastwa i bałaganu, więc bliżej zainteresowałem się tym tematem, aby dowiedzieć się co dokładnie generuje te logi i czy mi jest to w ogóle potrzebne do życia… W końcu w skali miesiąca 22 GB to nie w kij dmuchał i wypadałoby trochę to zoptymalizować, prawda? 😄
Domyślne zadania w crontab - SA1 & SA2 & SAR
Przeglądając pliki crontaba natrafiłem na:
# Run system activity accounting tool every 10 minutes |
Czym jest SA1?
/usr/lib64/sa/sa1
to skrypt systemowy odpowiedzialny za zbieranie statystyk systemowych (część pakietu sysstat), takich jak informacje o użyciu procesora, pamięci i dysku. Zapisuje on zebrane metryki do pliku (/var/log/sa/saXX
- gdzie XX to numer dnia miesiąca) w formacie interpretowanym przez program sa2. Domyślnie uruchamiany jest co 10 minut przez cron.
Czym jest SA2?
/usr/lib64/sa/sa2
to skrypt systemowym używany do zbierania i analizowania statystyk systemowych zbieranych przez skrypt sa1
. Odczytuje on dane z plików /var/log/sa/saXX
i tworzy raport zbiorczy z tych danych (domyślnie raz dziennie o 23:53 - Dlaczego dokładnie o tej godzinie? - Nie mam pojęcia 😄 - Może po prostu maksymalnie zajmuje mu to do 7 minut i kończy swoje zadanie idealnie o północy?). Możesz użyć polecenia sar
do wyświetlenia raportów wygenerowanych przez sa2
.
Czym jest polecenie SAR?
SAR, czyli System Activity Report służy do wyświetlania / interpretowania statystyk zbieranych przez sa1
i sa2
na podstawie wygenerowanych przez nich plików.
Oto kilka przykładów użycia tego polecenia:
- Użycie procesora dla ostatniego dnia:
sar -u
- Użycie pamięci dla ostatniego tygodnia:
sar -r 7
- Obciążenie dysku dla ostatniego miesiąca:
sar -dp 30
- Liczba otwieranych i zamykanych plików dla ostatniej godziny:
sar -v
- Liczba zapytań do systemu plików dla ostatniego dnia:
sar -b
Więcej przykładów możesz uzyskać przeglądając man sar
. Wyniki prezentowane przez SAR niestety nie są zbytnio estetyczne, ale spełnia on swoje podstawowe zadanie, do którego został stworzony.
Co z tym wszystkim zrobić?
Można pozostawić te zadania i “cieszyć się” statystykami naszego systemu operacyjnego, ale ja osobiście mając zewnętrzny monitoring, który zbiera dla mnie te same dane, w dodatku bardziej szczegółowo - jest to dla mnie zbędne. Nie lubię usuwać domyślnych wartości konfiguracyjnych z uwagi na to, że zawsze chcę mieć wgląd do tego jak dany config wyglądał pierwotnie, dlatego też po prostu zakomentowałem zadania SA1 i SA2, co i tobie drogi czytelniku polecam.
Źródła:
Domyślny crontab dla sa1 i sa2 (sar)