Jaka jest dokładna różnica między parametrami (pgpgin, pswpin) i (pswpout, pgpgout) w / proc / vmstat?

9

Pamiętaj, że to pytanie dotyczy linuxtylko. I przez swap space, mam na myśli oddanych swap partition.

Zrobiłem googleto trochę i znalazłem definitions:

Paging refers to writing portions, termed pages, of a process’ memory to disk.
Swapping, strictly speaking, refers to writing the entire process, not just part, to disk.
In Linux, true swapping is exceedingly rare, but the terms paging and swapping
often are used interchangeably.

i

page-out: The system's free memory is less than a threshold "lotsfree" and unnused / least used pages are moved to the swap area.
page-in: One process which is running requested for a page that is not in the current memory (page-fault), it's pages are being brought back to memory.
swap-out: System is thrashing and has deactivated a process and it's memory pages are moved into the swap area.
swap-in: A deactivated process is back to work and it's pages are being brought into the memory.

Teraz możesz zduplikować to pytanie z pytaniami dotyczącymi różnic między stronicowaniem a zamianą. Ale szukam trochę więcej. Czy w dowolnym momencie te liczniki /proc/vmstatwykluczają się wzajemnie? Rozumiem przez to, czy parametr pswpinzawiera pewne liczby pgpginlub vice versa? Co dokładnie dzieje się, gdy proces jest deactivated? Jeśli wszystkie jego strony zostaną przeniesione w swapkosmos, to czym dokładnie różni się od wielu pageouts? Ponadto, jeśli pageinwystąpi za każdym razem , gdy wystąpi błąd strony, co można powiedzieć o pozostałych dwóch parametrach pgmajfaulti pgfaultw odniesieniu do tego zdarzenia? Czy jest tak, że za każdym razem, gdy pagefault (major? minor?)wystąpi odpowiednik, pageinwystępuje również?

Przydałoby się kilka przykładowych programów / testów do przetestowania tych poszczególnych parametrów.

PS: Mogę dodawać / edytować pytania :)

Nehal J Wani
źródło
Lepiej przenieś to pytanie na unix.stackexchange.com
Antonio,

Odpowiedzi:

1
  1. pgpgin - Liczba kilobajtów, z których system przywołał dane z dysku na sekundę.
  2. pgpgout - Liczba kilobajtów, które system wysłał na dysk na sekundę.
  3. pswpin - Liczba kilobajtów, jakie system podmienił z dysku na sekundę.
  4. pswpout - liczba kilobajtów, które system podmienił na dysk na sekundę.
Kanti Varanasi
źródło
5
Wartości w nie/proc/vmstat są na sekundę, są one sumą od ostatniego uruchomienia (patrz linuxinsight.com/proc_vmstat.html ). Jeśli chcesz, aby wartości stawek w określonym przedziale czasu były różne, musisz wziąć różnicę między wartościami - właśnie takie narzędzia lubią i mogą dla Ciebie zrobić. /proc/vmstatvmstatsar
devkev
2
pswpin / pswpout to liczba stron, a nie kilobajty.
George Sovetov,
1

Najnowsze jądra Linuksa pgpgin - Liczba kilobajtów, z których system przywołał dane z dysku na sekundę. pgpgout - Liczba kilobajtów, które system wysłał na dysk na sekundę.

pswpin - Liczba stron zamienionych przez system z dysku na sekundę. pswpout - Liczba stron, które system zamienił na dysk na sekundę.

Pgpgin i pgpgout zasadniczo wskazują aktywność IO.

Jak wskazano w wiadomości e-mail

Mikołaj
źródło
2
pswpi / pswpout = strony we / wy nie kilobajty we /
wy
5
Wartości w nie/proc/vmstat są na sekundę, są one sumą od ostatniego uruchomienia (patrz linuxinsight.com/proc_vmstat.html ). Jeśli chcesz, aby wartości stawek w określonym przedziale czasu były różne, musisz wziąć różnicę między wartościami - właśnie takie narzędzia lubią i mogą dla Ciebie zrobić. /proc/vmstatvmstatsar
devkev
1

Tak stare pytanie i jak dotąd brak prawidłowej odpowiedzi.

Przede wszystkim pamięć jest dzielona przez procesor i jądro na tak zwane strony. Rozmiar strony jest podany przez architekturę procesora, wiele architektur obsługuje wiele różnych rozmiarów stron, ale najczęstszy rozmiar strony w architekturze x86_64 ma rozmiar 4KB. Te parametry, o których mówisz, pokazują, ile stron pamięci zostało odczytanych / zapisanych na dysk i ile z nich jest zamienionych.

Pamiętaj, że strona jest normalnym działaniem w jądrze Linuksa, dzieje się to prawie za każdym razem, gdy ładujesz plik binarny z dysku (który nie jest buforowany) do pamięci operacyjnej - to znaczy za każdym razem, gdy uruchamiasz dowolną aplikację.

Ponieważ operacje pgin i pgout nie zawsze są czymś, o co należy się martwić, stworzono dodatkowe liczniki zawierające tylko informacje o zamianie - to liczniki pswpin i pswpout - są one zwiększane, gdy strona pamięci jest zapisywana w swap lub gdy jest odczytywana z zamiana.

Znowu - nie oznacza to również problemu, wskazuje tylko na problem w pewnych okolicznościach - na przykład gdy widzisz, że te liczby zmieniają się bardzo szybko w krótkim czasie (co zwykle ma miejsce, gdy w systemie brakuje pamięci).

W skrócie:

  • pgpgin, pgpgout - liczba stron odczytywanych z dysku i zapisywanych w pamięci, zwykle nie musisz przejmować się tymi liczbami
  • pswpin, pswpout - możesz śledzić te liczby na raz (poprzez pewne monitorowanie, takie jak prometheus), jeśli występują szczyty, oznacza to, że system mocno się zmienia i masz problem
Petr
źródło