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:

/var/log/messages
Dec 11 04:40:01 wombat systemd: Created slice User Slice of root.
Dec 11 04:40:01 wombat systemd: Started Session 917 of user root.
Dec 11 04:40:01 wombat systemd: Removed 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:

/etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

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:

Author

Gracjan Grala

Posted on

2022-12-12

Updated on

2023-06-02

Licensed under

Komentarze

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×