Observe que esta pergunta é específica linux
apenas para. E por swap space
, quero dizer o dedicado swap partition
.
Eu fiz google
um pouco sobre isso e encontrei estes 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.
e
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.
Agora, você pode querer duplicar esta pergunta com aquelas que perguntam sobre as diferenças entre paginação e troca. Mas procuro um pouco mais. Em algum momento, esses contadores são /proc/vmstat
mutuamente exclusivos? Com isso quero dizer, o parâmetro pswpin
inclui algumas contagens pgpgin
ou vice-versa? O que exatamente acontece quando um processo é deactivated
? Se todas as suas páginas forem movidas para swap
o espaço, então exatamente como é diferente de multiple pageouts
? Além disso, se a pagein
ocorre sempre que ocorre uma falha de página, o que se pode dizer sobre os outros dois parâmetros pgmajfault
e pgfault
com relação a esse evento? Será que sempre que ocorre a , também ocorre pagefault (major? minor?)
uma correspondente ?pagein
Seria útil se alguns exemplos de programas/benchmarks fossem sugeridos para testar esses parâmetros individuais.
PS: Posso continuar adicionando/editando as perguntas :)
Responder1
Pergunta tão antiga e nenhuma resposta correta até agora.
Primeiro de tudo, a memória é segmentada por CPU e Kernel nas chamadas páginas. O tamanho da página é determinado pela arquitetura da CPU, muitas arquiteturas suportam vários tamanhos de página diferentes, mas o tamanho de página mais comum na arquitetura x86_64 tem 4 KB. Esses parâmetros de que você fala mostram quantas páginas de memória foram lidas/gravadas no disco e quantas delas são trocadas.
Tenha em mente quepágina emé uma atividade normal no kernel do Linux, acontece quase sempre que você carrega um binário do disco (que não está armazenado em cache) na memória operacional - ou seja, sempre que você inicia qualquer aplicativo.
Como as operações pgin e pgout nem sempre são algo com que você precisa se preocupar, foram criados contadores adicionais que contêm apenas informações para swap - são os contadores pswpin e pswpout - eles são incrementados quando uma página de memória é gravada em swap ou quando é lida de trocar.
Novamente - isso também não indica um problema, apenas indica um problema em certas circunstâncias - como quando você vê esses números mudando muito em um curto período de tempo (o que geralmente ocorre quando o sistema está sem memória).
Resumindo:
- pgpgin, pgpgout - número de páginas que são lidas do disco e gravadas na memória, normalmente você não precisa se preocupar muito com esses números
- pswpin, pswpout - você pode querer rastrear esses números por vez (por meio de algum monitoramento como o prometheus), se houver picos, significa que o sistema está trocando fortemente e você tem um problema
Responder2
- pgpgin - Número de kilobytes que o sistema paginou do disco por segundo.
- pgpgout - Número de kilobytes que o sistema paginou para o disco por segundo.
- pswpin – Número de kilobytes que o sistema trocou do disco por segundo.
- pswpout – Número de kilobytes que o sistema transferiu para o disco por segundo.