Pamiętaj, że to pytanie dotyczy linux
tylko. I przez swap space
, mam na myśli oddanych swap partition
.
Zrobiłem google
to 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/vmstat
wykluczają się wzajemnie? Rozumiem przez to, czy parametr pswpin
zawiera pewne liczby pgpgin
lub vice versa? Co dokładnie dzieje się, gdy proces jest deactivated
? Jeśli wszystkie jego strony zostaną przeniesione w swap
kosmos, to czym dokładnie różni się od wielu pageouts
? Ponadto, jeśli pagein
wystąpi za każdym razem , gdy wystąpi błąd strony, co można powiedzieć o pozostałych dwóch parametrach pgmajfault
i pgfault
w odniesieniu do tego zdarzenia? Czy jest tak, że za każdym razem, gdy pagefault (major? minor?)
wystąpi odpowiednik, pagein
wystę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 :)
źródło
Odpowiedzi:
źródło
/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/vmstat
vmstat
sar
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
źródło
/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/vmstat
vmstat
sar
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:
źródło