NetBSD performance log
|
||||||||
Monitorowaniem systemu warto zainteresować się w co najmniej trzech przypadkach:
<DawS> widzisz, każdy normalny admin ma na swojej maszynie coś, co możemy nazwać 'performance logami'"Jak trwoga, to do loga"W razie problemów odruchową i jak najbardziej uprawnioną reakcją jest przejrzenie zawartości logów systemowych i aplikacyjnych, ich monitorowanie (tail -f <plik.logu> ), korzystanie z aplikacji w rodzaju top , testowanie sprzętu odpowiednimi programami diagnostycznymi itd. W wielu sytuacjach będzie to jednak niewystarczające. Dodatkowo, duża ilość krytycznych parametrów systemu, powiązania między nimi i ich dynamiczny charakter nie ułatwiają zadania.Skorzystamy z programu vmstat jako monitora/źródła danych, z których następnie gnuplot wygeneruje wykres. Na osi poziomej wykresu odkłada się czas. Osie pionowe natomiast mają różne skale (dlaczego? obejrzyj zawartość vmstat.log ). To, która oś dotyczy danego parametru wskazane jest na legendzie odpowiednim skierowaniem nawiasu trójkątnego. Znaczenie nazw zmiennych - jak w man vmstat .Zanim zaczniemyTo, czy mamy zainstalowanygnuplot możemy sprawdzić wydając polecenie:
gnuplot --versionJeśli zobaczymy komunikat w rodzaju... gnuplot 4.0 patchlevel 0...w porządku. Jeśli nie, program możemy zainstalować np. z pkgsrc: cd /usr/pkgsrc/graphics/gnuplot make make install Przykładowe rozwiązanieRozwiązanie oparte jest o dwa skrypty shellowe. Pierwszy monitoruje system, drugi przedstawia zebrane dane w formie wykresu.Pierwszy skryptperflog.sh działa bez przerwy w tle, logując opatrzone timestampem informacje zwracane przezvmstat (do pliku /var/log/vmstat.log ) i przez ps (do /var/log/ps.log ), oraz zapewnia minimalną "rotację" tych logów (szczególnie plik ps.log może w krótkim czasie zając dużo miejsca). W prezentowanym rozwiązaniu pliki zapisywane są do katalogu /var/log , zatem pierwszy skrypt wymaga uruchomienia z prawami roota. vmstat można jednak uruchamiać także z konta zwykłego użytkownia - należy wtedy zmienić skrypty tak, by zapisywały i wczytywały informację do/z plików znajdujących się np. w katalogu domowym.Skrypt ten wywołujemy poleceniem nohup ./perflog.sh &lub dopisujemy do /etc/rc.local , by startował przy każdym uruchomieniu systemu.Pierwsza kolumna pliku vmstat.log zawierać będzie timestamp (co ok. sekundę nowa linia wyników). Tym samym timestampem opatrzone będzie sąsiadujące w czasie, zapisane do ps.log wywołanie ps . Dzięki temu w razie zauważenia nieprawidłowości na syntetycznym wykresie można będzie łatwo znaleźć odpowiednie wpisy w innych logach.
<kocio> mam top odpalony cały czas, ale nic szczególnego nie widać
|
||||||||
|