Warunki wstępne:
Do wykonania kroków przedstawionych w tym przewodniku potrzebne są następujące komponenty:
- Prawidłowo skonfigurowany system Linux. Do celów testowych rozważ użycie maszyny wirtualnej z systemem Linux .
- Dostęp do użytkownik inny niż root z uprawnieniami sudo
- Podstawowa znajomość interfejsu wiersza poleceń
Pamięć wirtualna w systemie Linux
Ilość pamięci fizycznej, zwanej także RAM, jest skończona. Jądro jest odpowiedzialne za dystrybucję tej przestrzeni pomiędzy wszystkie działające programy. Wszystkie uruchomione programy (w tym system operacyjny) znajdują się w pamięci RAM.
Jeśli jednak zapotrzebowanie na pamięć jest większe niż dostępna, powoduje to po prostu awarię systemu (lub program poprosi o więcej miejsca w pamięci). W większości sytuacji jest to niepożądany wynik. Tutaj z pomocą przychodzi pamięć wirtualna.
Pamięć wirtualna oznacza wydzieloną przestrzeń dyskową na dysku twardym/SSD, która w krytycznych sytuacjach może służyć jako dodatkowa pamięć. Ponieważ działa jako przestrzeń RAM (ale tak naprawdę nie), jest uważana za „wirtualną”. W systemach UNIX/Linux spacje te nazywane są przestrzeniami wymiany.
Jądro Linuksa przenosi bloki pamięci do przestrzeni wymiany i w razie potrzeby pobiera je z powrotem do pamięci RAM.
Wydajność pamięci wirtualnej jest zdecydowanie wolniejsza niż pamięci fizycznej i jest wprost proporcjonalna do wydajności urządzenia magazynującego. Jednak w określonych konfiguracjach sprzętowych (na przykład przy użyciu dysku SSD NVMe) wydajność może być równoważna pamięci RAM.
Polecenie Vmstat
Polecenie „vmstat” to narzędzie monitorujące, które raportuje różne informacje o pamięci wirtualnej. Jest dostępny na wszystkich systemach Linux jako część pakietu „sysstat”.
Struktura poleceń „vmstat” jest następująca:
$ vmstat < opcje > < opóźnienie > < liczyć >Podstawowe użycie
Jeśli zostanie uruchomiony bez żadnego parametru, „vmstat” wypisuje informacje o systemie od ostatniego uruchomienia:
$ vmstat
Dane wyjściowe są podzielone na sześć segmentów:
- procesy : Statystyka aktualnie uruchomionych procesów
- R : Liczba aktywnych procesów
- B : Liczba procesów uśpienia
- pamięć : Statystyki wykorzystania pamięci
- swpd : Całkowita ilość pamięci wirtualnej (przestrzeń wymiany)
- bezpłatny : Dostępna przestrzeń wymiany
- polerować : Ilość przestrzeni wymiany używanej jako tymczasowa pamięć buforowa
- Pamięć podręczna : Całkowita pamięć podręczna
- zamieniać : Statystyki dotyczące przestrzeni wymiany
- Tak : Stopa zamiany
- Więc : Stopień wymiany
- Ten : Statystyki we/wy
- z : Liczba bloków odebranych z urządzeń blokujących
- Być : Liczba bloków wysłanych do urządzeń blokujących
- system : Statystyki dotyczące harmonogramu
- W : Liczba przerwań systemowych
- cs : Szybkość przełączania kontekstu
- procesor : Różne statystyki procesora
- nas : Procesor spędza czas na procesach innych niż jądro
- I : Procesor spędza czas na procesach jądra
- ID : Procesor spędza czas na biegu jałowym
- z : Czas procesora spędzany w oczekiwaniu na zakończenie operacji we/wy
- ul : Czas procesora używany przez maszynę wirtualną
Zmiana jednostki wyświetlacza
Domyślnie „vmstat” podaje wartości pamięci w kilobajtach. Aby zmienić jednostkę, użyj przycisku „ -S ' flaga:
$ vmstat -S < argument >
Tutaj „vmstat” wypisuje wartości w megabajtach.
Dostępnych jest kilka jednostek pamięci:
- M : 1048576 bajtów (2^20 bajtów)
- M : 1000000 bajtów (1000 kilobajtów)
- K : 1024 bajty (1 megabajt)
- k : 1000 bajtów (1 kilobajt)
Ciągła aktualizacja statystyk
Domyślnie „vmstat” drukuje raport raz. Możemy jednak poinstruować „vmstat”, aby dostarczał ciągłe raporty w określonych odstępach czasu (w sekundach).
Struktura poleceń jest następująca:
$ vmstat < opóźnienie >Na przykład, aby uzyskać aktualizowane statystyki co 2 sekundy, polecenie wygląda następująco:
$ vmstat 2
Wyjście nie zostanie zatrzymane, chyba że zostanie ręcznie zakończone za pomocą „Ctrl + C”.
Alternatywnie możemy określić „vmstat”, aby zapewnić statystyki określoną liczbę razy:
$ vmstat < opóźnienie > < liczyć >Na przykład, aby uzyskać aktualizowane statystyki co 2 sekundy 5 razy, polecenie wygląda następująco:
$ vmstat 2 5
Pamięć aktywna i nieaktywna
Pamięć aktywna odnosi się do przestrzeni pamięci aktualnie używanej przez proces. Z drugiej strony pamięć nieaktywna odnosi się do przestrzeni pamięci przydzielonej procesowi, który już nie działa.
Za pomocą „vmstat” możemy sprawdzić ilość używanych pamięci aktywnych i nieaktywnych:
$ vmstat -A
Tutaj kolumny „wzmocnienie” i „pamięć podręczna” zostały zastąpione odpowiednio kolumnami „nieaktywne” i „aktywne”.
Pamięć i planowanie
Aby uzyskać bardziej szczegółowy raport na temat pamięci i harmonogramu, użyj następującego polecenia:
$ vmstat -S
Tutaj:
- Sekcja 1: Ta sekcja dotyczy podstawowych informacji o systemie, takich jak całkowita pamięć fizyczna, pamięć aktywna/nieaktywna, pamięć wolna/buforowa/podręczna itp.
- Sekcja 2: Różne statystyki procesora
- Nieprzyjemne tykanie procesora : Ile razy procesy o wysokim priorytecie wykorzystywały procesor.
- Ładne tykanie procesora : Liczba przypadków użycia procesora przez procesy o niższym priorytecie.
- Procesor systemowy tyka : Liczba przypadków wykorzystania procesora przez procesy jądra.
- Bezczynność procesora tyka : Liczba bezczynności procesora.
- IO-czekaj, zaznacza procesor : Liczba przypadków oczekiwania procesora na zarządzanie we/wy.
- Przerwanie : Liczba przypadków, w których procesor otrzymał żądania przerwania.
- softirq : Liczba odebranych przez procesor żądań przerwania programowego.
- skradzione znaczniki procesora : Liczba przypadków kradzieży czasu procesora przez maszyny wirtualne.
- Sekcja 3: Statystyki stronicowania pamięci
- Sekcja 4: Liczniki zdarzeń
Widelce od czasu rozruchu
Forki odnoszą się do procesów, które powstały w wyniku istniejących procesów. Aby uzyskać statystyki dotyczące liczby forków, uruchom następującą komendę:
$ vmstat -F
Statystyki dysków i partycji
Polecenie „vmstat” może również dostarczyć informacji o aktywności dysku. Aby uzyskać szybkie podsumowanie aktywności dysku, uruchom następującą komendę:
$ vmstat -D
Aby uzyskać bardziej szczegółowy raport o aktywności dysku (w tym statystyki odczytu/zapisu), użyj zamiast tego następującego polecenia:
$ vmstat -D
Tutaj:
- Czyta
- całkowity : Całkowita liczba odczytów dysku
- połączone : Całkowita liczba odczytów grupy
- sektory : Całkowita liczba odczytanych sektorów
- SM : Całkowity czas odczytu danych z dysku (w milisekundach)
- Pisze
- całkowity : Całkowita liczba zapisów na dysku
- połączone : Całkowita liczba zapisów grupy
- sektory : Całkowita liczba zapisanych sektorów
- SM : Całkowity czas zapisu na dysku (w milisekundach)
- IO
- umieścić : Całkowity bieżący odczyt/zapis na dysku
- sek : Ilość czasu spędzonego na trwającej operacji odczytu/zapisu (w sekundach)
Komenda „vmstat” może również generować raporty dla określonej partycji dysku. Aby uzyskać raport partycji, użyj następującej struktury poleceń:
$ vmstat -P < identyfikator_partycji >
Statystyki płyty
Alokacja płyt ma być wydajnym mechanizmem alokacji pamięci obiektów. W porównaniu do poprzednich mechanizmów, alokacja płyt zapewnia redukcję fragmentacji pamięci (spowodowanej alokacją i dezalokacją pamięci).
Aby sprawdzić statystyki płyty systemu należy użyć komendy „vmstat”:
$ sudo vmstat -M
Pamiętaj, że do przeglądania statystyk wymagane są uprawnienia roota.
Tutaj:
- Pamięć podręczna : Nazwa danych w pamięci podręcznej
- na jednego : Liczba obiektów aktywnych w pamięci podręcznej Num
- Całkowity : Całkowita liczba obiektów w określonej pamięci podręcznej
- Rozmiar : Rozmiar buforowanych obiektów
- Strony : Liczba stron pamięci zawierających obiekty w pamięci podręcznej
Wniosek
W tym przewodniku przedstawiliśmy różne sposoby korzystania z polecenia „vmstat”. Oprócz pamięci wirtualnej „vmstat” może również raportować statystyki dysku, forki, płyty i inne.
Chcesz poznać inne narzędzia do monitorowania systemu? Dowiedz się więcej o góra , zabić , ps itp.
Miłego liczenia!