Księgowanie procesów w systemie GNU/Linux



Podobne dokumenty
Konfigurowanie i zastosowanie systemu Cron

1 Przygotował: mgr inż. Maciej Lasota

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Systemy operacyjne. Instrukcja laboratoryjna. Ćwiczenie 1: Polecenia systemu UNIX/LINUX. Opracował: dr inż. Piotr Szpryngier

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Zakład Systemów Rozproszonych

Powłoka I. Popularne implementacje. W stylu sh (powłoki zdefiniowanej w POSIX) W stylu csh. bash (najpopularniejsza) zsh ksh mksh.

Komendy Ubuntu MARCEL GAŃCZARCZYK 2T I 1

Podstawy użytkowania Linux a

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

Administrowanie systemem Linux. Zajecia dla studentow Wydzialu Informatyki (Sieci Komputerowe) WIT w Warszawie w roku akademickim 2006/2007.

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

1. shell co to i co umożliwia, jakie są shell e. 2. skrypty powłoki. crone dr inż. Anna Zatwarnicka Skrypty i crone

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Syslog. Dziennik systemowy

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Instytut Fizyki

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Architektura systemów informatycznych WPROWADZENIE DO SYSTEMU LINUX

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików Konsola Zapisanie rezultatu do pliku... 50

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Moduł 4: Strumienie, potoki, sterowanie procesami

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Optymalizacja programów Open Source. Profilery wysokiego poziomu część 2. Krzysztof Lichota

Linux: System Plików

Podręcznik użytkownika Obieg dokumentów

Systemy Operacyjne I: Procesy

Księgarnia PWN: Emmett Dulaney - Novell Certified Linux Professional (NCLP)

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Pracownia Technik Obliczeniowych

Monitorowanie i zarządzanie urządzeniami sieciowymi przy pomocy narzędzi Net-SNMP

Windows Serwer 2008 R2. Moduł 8. Mechanizmy kopii zapasowych

Laboratorium systemów operacyjnych ćwiczenie nr 3. [ilość modułów: 1] Temat zajęć: Procesy w systemie operacyjnym

Formy dialogowe w środowisku Gnome

OPROGRAMOWANIE WSPOMAGAJĄCE ZARZĄDZANIE PROJEKTAMI. PLANOWANIE ZADAŃ I HARMONOGRAMÓW. WYKRESY GANTTA

Podręcznik KGet. Gaurav Chaturvedi : Michał Bendowski : Jan Stożek

Okiełznać Pingwina.... czyli podstawy systemu GNU/Linux

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.

BASH - LINIA POLECEŃ. Bioinformatyka 2018/2019

PRACOWNIA INFORMATYCZNA BASH - PODSTAWOWE INFORMACJE

26.X.2004 VNC. Dawid Materna

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

Proces instalacji systemu operacyjnego Linux Red Hat 7.3 (1)

SOGA web co powinieneś wiedzieć

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Ćwiczenie Zmiana sposobu uruchamiania usług

Aplikacje WWW - laboratorium

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Ćwiczenie nr 14: System Linux

Administracja systemem Linux

JPK Jednolity Plik Kontrolny

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

1 Moduł Modbus ASCII/RTU 3

1.1 Definicja procesu

Systemy operacyjne i sieci komputerowe. 1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Etapy uruchamiania systemu

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Kurs systemu Unix wykład wstępny. Kurs systemu Unix 1

JPK Jednolity Plik Kontrolny

Sieci Komputerowe 2 / Ćwiczenia 1

BASH - WPROWADZENIE Bioinformatyka 4

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Tworzenie i obsługa wirtualnego laboratorium komputerowego

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Użytkownicy I. Użytkownik. Głównym celem istnienia użytkowników i grup w systemie jest utrzymanie porządku i separacja uprawnień.

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Wstęp do systemu Linux

Zmiana logo. Dziękujemy za wybór naszych rozwiązań. apjoo od Apláuz. Wspólnie przebrniemy przez proces konfiguracji strony www i wstawiania treści.

Instrukcja użytkownika ARSoft-WZ1

Kernel Kompilacja jądra

Nazwa przedmiotu: ADMINISTRACJA SIECIOWYMI SYSTEMAMI OPERACYJNYMI

Arkadiusz Kalicki, Lech Mankiewicz Plugin Webcam dla SalsaJ Podręcznik użytkownika

1 Moduł Modbus ASCII/RTU

5.2. Pierwsze kroki z bazami danych

W pierwszej kolumnie wyświetlany jest identyfikator procesu (pid)

Spis treści. 1 Moduł Modbus TCP 4

Administracja serwerami

Konsola i interpreter poleceń

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

NETBEANS PROFILER TOMASZ ŁUKASZUK

1 Rejestrator czasu pracy

InPost PACZKOMATY. (Moduł Magento 2) v Strona 1 z 18

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

GNU GProf i GCov. przygotował: Krzysztof Jurczuk Politechnika Białostocka Wydział Informatyki Katedra Oprogramowania ul. Wiejska 45A Białystok

Spis treści. Instalacja oprogramowania...j... 8 Instalacja pakietów poprzez rpm...j Listowanie zawartości folderu...j... 14

PROGRAM DO PLANOWANIA ZAKUPÓW wg CPV/CPC

1 Zapoznanie się ze środowiskiem Xenomai.

Zadania: 1. Funkcja przeliczająca F na C: float FtoC(float f){ return (f 32.0) * 5.0 / 9.0; }

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

Spis treści. Polityka dotycząca plików cookie

Konfiguracja SNMP z wykorzystaniem pakietu MRTG

Zdalne monitorowanie i zarządzanie urządzeniami sieciowymi

Uruchamianie zadań w środowisku CLUSTERIX z wykorzystaniem klienta tekstowego systemu GRMS

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Rozdział 5. Administracja kontami użytkowników

Część 3 - Konfiguracja

QUERY język zapytań do tworzenia raportów w AS/400

Niestandardowa tabela częstości

4.2 Sposób korzystania z l acza

5. Mechanizm szablonów.

Transkrypt:

Grzegorz Jacek Nalepa 20.03.2001, Kraków, Revision : 1.2 Streszczenie Artykuł opisuje mechanizm księgowania procesów (ang. process accounting) dostępny w systemie GNU/Linux. Przedstawiona jest współpraca jądra systemu z programami działającymi w przestrzenie użytkownika. Pokazane jest wykorzystanie narzędzi z pakietu GNU Accounting utilities do monitorowania pracy użytkowników systemu. Poruszone są również problemy zarządzania plikami rejestrowymi związanymi z księgowaniem procesów. Spis treści 1 Wstęp 2 2 Czym jest księgowanie procesów 2 3 Realizacja księgowania procesów 2 4 Czym jest księgowanie sesji pracy 3 5 Realizacja księgowania sesji 3 6 GNU Accounting Utilities 4 7 Archiwizacja plików rejestrowych 6 8 Podsumowanie 6 1 Tekst ukazał się w: Magazynie TeleNetforum, nr 4/2001, wydawanym przez Lupus. 2 Kontakt z autorem: mail:gjn@agh.edu.pl 3 Tytuł angielski: Process Acounting in GNU/Linux system 4 Tekst jest rozpowszechniany na zasadach licencji GNU Free Documentation License, której pełny tekst można znaleźć pod adresem: http://www.gnu.org/copyleft/fdl.html 1

1. Wstęp Księgowanie procesów i sesji użytkowników jest jednym z podstawowych mechanizmów w systemie GNU/Linux, umożliwiającym szczegółowe monitorowanie pracy systemu i wykorzystania udostępnianych zasobów. W systemie GNU/Linux administrator ma wiele możliwości monitorowania jego pracy. Jednym z najczęściej wykorzystywanych jest system Syslog pozwalający na śledzenie pracy programów, szczególnie procesów systemowych. Syslog pozwala na gromadzenie informacji wysyłanych przez programy z wykorzystaniem mechanizmów dostarczanych przez bibliotekę standardową. Nie jest jednak w stanie gromadzić informacji, które nie są wysyłane przez pracujące procesy, takich jak informacje o samym tworzeniu czy usuwaniu procesu, a także wykorzystaniu przez niego zasobów. Zbieranie tego typu informacji umożliwia księgowanie procesów. Oprócz informacji na temat procesów użytkowników system gromadzi szczegółowe informacje dotyczące ich pracy w systemie dzięki mechanizmowi księgowania sesji pracy. 2. Czym jest księgowanie procesów Księgowanie procesów (ang. process accounting) jest systemowym mechanizmem pozwalających na gromadzenie informacji na temat procesów pracujących w systemie. Mechanizm księgowania procesów wywodzi się z BSD Unixa. Księgowanie procesów jest realizowane na poziomie jądra systemu. Jądro systemu Linux gromadzi informacje między innymi o: nazwie procesu właścicielu i grupie procesu czasie jego stworzenia i usunięcia zużytym czasie systemowym w przestrzeni użytkownika i jądra zużyciu pamięci przez proces ilości przetransferowanych danych wejściowych i wyjściowych Dane gromadzone przez jądro są wysyłane do określonego pliku. Nazwa tego pliku jest przekazywana do jądra w trakcie inicjalizacji księgowania. Zgromadzone dane mogą być następnie przetwarzane przez dodatkowe programy. 3. Realizacja księgowania procesów Na Rysunku 1 jest pokazana realizacja księgowania procesów w systemie GNU/Linux. Inicjalizacja księgowania jest realizowana przez program accton, wywołujący funkcję systemową acct() (2) z biblioteki standardowej. Program przekazuje funkcji nazwę pliku w którym jądro ma gromadzić dane o procesach. W systemie GNU/Linux jest to najczęściej /var/account/pacct, lub /var/log/acct. Deklaracja funkcji acct() (2) znajduje się w systemowym pliku nagłówkowym <unistd.h>. Na poziomie jądra systemu Linux obsługą księgowania procesów zajmuje się funkcja sys acct(), której kod znajduje się w pliku /usr/src/linux/kernel/acct.c. Wykorzystuje ona strukturę danych opisującą rekord księgowania, zadeklarowaną w pliku <linux/acct.h>. 3 REALIZACJA KSIĘGOWANIA PROCESÓW 2

accton sa lastcomm acct() GNUlibC pacct sys_acct() jadro Linux Rysunek 1: Realizacja księgowania procesów Dane na temat procesów są gromadzone przez jądro systemu w postaci binarnej. Ich dalsza obróbka, w szczególności sporządzanie statystyk jest realizowane przez oddzielne narzędzia uruchamiane przez administratora systemu. 4. Czym jest księgowanie sesji pracy Księgowanie sesji pracy (ang. login accounting) jest mechanizmem uzupełniającym księgowanie procesów. Jest realizowane głównie w przestrzeni użytkownika, przez procesy systemowe takie jak init czy login a także inne związane z zarządzaniem sesjami pracy. Mechanizm księgowania sesji pozwala między innymi na gromadzenie informacji o: nazwie użytkownika czasie zamknięcia i otwarcia sesji typie sesji nazwie i adresie maszyny z której była otwarta sesja Dane o sesjach użytkownikach są gromadzone w dwóch plikach. Pierwszy z nich utmp zawiera informacje o aktualnie otwartych sesjach. Drugi, wtmp przechowuje informacje o sesjach, które zostały już zamknięte. Plik utmp znajduje się najczęściej w katalogu /var/run, a plik wtmp w /var/log. 5. Realizacja księgowania sesji Realizacja mechanizmu księgowania sesji pracy w systemie GNU/Linux jest podobna jak w innych systemach uniksowych i opiera się głównie na funkcjach z biblioteki systemowej. Jest ona pokazana na Rysunku 2. Księgowanie sesji jest realizowane poprzez kilka funkcji z biblioteki systemowej, takich jak logwtmp() (2) czy updwtmp() (2), zadeklarowanych w pliku <utmp.h>. Funkcje używają struktury utmp opisującej rekord w bazie księgowanych sesji. Obydwie funkcje są wywoływane przez wszystkie procesy związane z zarządzaniem sesją pracy użytkowników. Należą do nich przede wszystkim init i login. 5 REALIZACJA KSIĘGOWANIA SESJI 3

init login logwtmp() updwtmp() GNUlibC ac last utmp wtmp jadro Linux Rysunek 2: Realizacja księgowania sesji Informacje o księgowanych sesjach są przechowywane w plikach utmp i wtmp w postaci binarnej. Te pliki są poddawane dalszej obróbce przez dodatkowe programy uruchamiane przez administratora lub użytkowników systemu. 6. GNU Accounting Utilities Programy wspomagające inicjalizację księgowania procesów i obróbkę danych gromadzonych przez system znajdują się w pakiecie GNU Accounting Utilities. Pakiet składa się z 7 programów, realizujących: ac wyświetlanie statystyk na temat sesji użytkowników accton inicjalizację księgowania procesów last pokazywanie listy ostatnich sesji pracy użytkowników lastcomm pokazywanie listy ostatnio uruchamianych procesów sa generowanie statystyk dotyczących zużycia zasobów systemu przez polecenia uruchamiane przez konkretnych użytkowników dump-acct bezpośrednie wyświetlanie zawartości pliku acct w postaci tekstowej dump-utmp bezpośrednie wyświetlanie zawartości pliku utmp w postaci tekstowej W celu uruchomienia księgowania procesów w systemie należy założyć plik acct, na przykład przy pomocy polecenia: # touch /var/account/pacct Podczas startu systemu powinno być uruchamianie polecenie accton: if [ -x /sbin/accton ] then /sbin/accton /var/log/pacct echo "Process accounting turned on." fi 6 GNU ACCOUNTING UTILITIES 4

Informacje na temat procesów można wyświetlać przy pomocy programu lastcomm: # lastcomm lastcomm X root stderr 0.68 secs Mon Mar 19 23:47 mesg S root stderr 0.01 secs Mon Mar 19 23:47 bash F root stderr 0.01 secs Mon Mar 19 23:47 receive root stderr 0.01 secs Mon Mar 19 23:47 sh gjn?? 0.02 secs Mon Mar 19 23:30 gzip gjn?? 0.01 secs Mon Mar 19 23:30 man gjn?? 0.02 secs Mon Mar 19 23:23 pager gjn?? 0.07 secs Mon Mar 19 23:23 Widoczne powyżej flagi oznaczają kolejno: F proces uruchomiony w wyniku funkcji fork(), S proces uruchomiony przez administratora, X proces zakończony sygnałem SIGTERM, D proces zakończył się stworzeniem pliku core. Możliwe jest również wyświetlanie poleceń wykonywanych przez podanego użytkownika, a także zadawanie wzorców wybierających z listy odpowiednie procesy. Polecenie sa pozwala na sporządzenie sumarycznych raportów na temat uruchamianych procesów. Wywołane bez parametrów wyświetla posortowaną listę procesów i ilość wykorzystanych przez nie zasobów: # sa 81 792.12re 2.53cp 0avio 1564k latex 57 14837.17re 1.72cp 0avio 1329k gs 2 127061.33re 0.87cp 0avio 671k mc 12 300253.58re 0.54cp 0avio 787k xterm 9 98.55re 0.50cp 0avio 2176k pdflatex 4 74865.12re 0.29cp 0avio 600k mutt Możliwe jest również wyświetlanie stopnia zużycia zasobów przez konkretnych użytkowników: # sa -m 8828 2428609.07re 31.87cp 0avio 460k gjn 1976 1495168.85re 19.26cp 0avio 530k root 6851 933440.15re 12.61cp 0avio 440k rwhod Polecenie ac pozwala na wygenerowanie statystyk dotyczących czasu pracy poszczególnych użytkowników w systemie, na przykład forma: # ac -dp Mar 15 total 0.27 gjn 23.89 root 0.02 spowoduje wyświetlenie codziennego, sumarycznego czasu pracy użytkowników w systemie Natomiast polecenie last umożliwia wyświetlenie listy ostatnio otwartych sesji użytkowników. Podane bez argumentów pokazuje informacje na temat sesji wszystkich użytkowników, uruchomione z nazwą konkretnego użytkownika podaje informacje, które dotyczą tylko niego. gjn :0 console Tue Mar 20 20:51 still logged in reboot system boot 2.4.1 Tue Mar 20 20:50 (01:15) gjn pts/2 :0.0 Mon Mar 19 20:44-00:35 (03:51) Jak widać zaznaczane są również czasy uruchomienia systemu. Z mechanizmu księgowania sesji użytkowników korzystają również standardowe polecenia wyświetlające informacje na temat pracujących użytkowników, takie jak w, who czy finger. 6 GNU ACCOUNTING UTILITIES 5

7. Archiwizacja plików rejestrowych Księgowanie procesów ma dość istotny skutek uboczny, a mianowicie tworzenie plików rejestrowych o bardzo dużej objętości. Nawet w systemie w którym pracuje kilku użytkowników pliki rejestrowe mogą osiągnąć wielkości rzędu megabajtów. W związku z tym niezwykle istotne staje się kontrolowanie ich wielkości. Najlepiej nadają się do tego systemowe mechanizmy rotacji plików rejestrowych, takie jak demon logrotate i system Cron. Aby zapobiec przepełnieniu systemu plików przez pliki rejestrowe związane z księgowaniem procesów mechanizm księgowania w jądrze systemu Linux może sprawdzać ilość wolnego miejsca w systemie plików. Ta procedura może być konfigurowana przez system /proc. $ cat /proc/sys/kernel/acct 4 2 30 Środkowa liczba oznacza procent wolnego miejsca w systemie plików, poniżej którego księgowanie zostanie wstrzymane. Jeżeli ilość wolnego miejsca wzrośnie powyżej ilości określonej pierwszą liczbą księgowanie jest wznawiane. Ostatnia liczba oznacza częstość sprawdzania wolnego miejsca mierzoną w sekundach. Domyślne wartości to 4 2 30, co oznacza, że jeżeli ilość wolnego miejsca spadnie poniżej 2 procent księgowanie zostanie zatrzymane, jeżeli wróci do poziomu 5 procent zostanie wznowione, a ilość wolnego miejsca będzie sprawdzana co 30 sekund. 8. Podsumowanie Księgowanie procesów i sesji jest ważnym mechanizmem pozwalającym monitorować pracę użytkowników w systemie GNU/Linux. Jest łatwo konfigurowalne, a dostarczane narzędzia pozwalają na obróbkę zbieranych przez nie informacji. Mechanizm księgowania połączony z możliwościami systemu PAM (szczególnie modułu limits) umożliwia precyzyjne mierzenie i ograniczanie zasobów zużywanych przez użytkowników i ich procesy. Jakkolwiek nie jest to mechanizm przydatny dla wszystkich serwerów, to administratorzy pragnący dokładnie znać wykorzystanie zasobów ich systemów uznają go za bardzo przydatny. Literatura [1] Noel Cragg, GNU Accounting Utilities, Version 6.3.5, 26 May 1998. [2] Albert M.C. Tam, Process Accounting HOWTO, LDP, 2001-02-09. [3] Rik van Riel, Documentation for /proc/sys/kernel, 1998, 1999. LITERATURA 6