Qual é a diferença exata entre os parâmetros (pgpgin, pswpin) e (pswpout, pgpgout) em / proc / vmstat?

9

Observe que esta pergunta é específica linuxapenas. E por swap space, quero dizer o dedicado swap partition.

Eu fiz googleum 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 duplicar esta pergunta com as que perguntam sobre as diferenças entre paginação e troca. Mas eu procuro um pouco mais. A qualquer momento, esses contadores são /proc/vmstatmutuamente exclusivos? Com isso, quero dizer, o parâmetro pswpininclui algumas contagens pgpginou vice-verso? O que exatamente acontece quando um processo é deactivated? Se todas as suas páginas forem movidas para o swapespaço, qual é exatamente a diferença entre várias pageouts? Além disso, se a pageinocorre sempre que ocorre uma falha na página, o que se pode dizer sobre os outros dois parâmetros pgmajfaulte pgfaultcom relação a esse evento? É o caso de que sempre que pagefault (major? minor?)ocorre um correspondente pageintambém ocorre?

Seria útil se alguns exemplos de programas / referências forem sugeridos para testar esses parâmetros individuais.

PS: Eu posso continuar adicionando / editando as perguntas :)

Nehal J Wani
fonte
Você iria mover-se melhor esta questão para unix.stackexchange.com
Antonio

Respostas:

1
  1. pgpgin - Número de kilobytes que o sistema paginou do disco por segundo.
  2. pgpgout - Número de kilobytes que o sistema paginou para o disco por segundo.
  3. pswpin - Número de kilobytes que o sistema trocou do disco por segundo.
  4. pswpout - Número de kilobytes que o sistema trocou para o disco por segundo.
Kanti Varanasi
fonte
5
Os valores em não/proc/vmstat são por segundo, são totais desde a última inicialização (consulte linuxinsight.com/proc_vmstat.html ). Se você deseja classificar valores em alguma unidade de tempo, precisa fazer a diferença entre os valores - que é exatamente o que os utilitários gostam e podem fazer por você. /proc/vmstatvmstatsar
Devkev 24/08/19
2
pswpin / pswpout é o número de páginas, não kilobytes.
George Sovetov
1

Para os kernels Linux mais recentes, 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 páginas que o sistema trocou do disco por segundo. pswpout - Número de páginas que o sistema trocou para o disco por segundo.

O pgpgin e o pgpgout indicam essencialmente a atividade de E / S.

Como indicado no email

Nikolai
fonte
2
pswpi / pswpout = páginas in / out não kilobytes in / out
BNAI
5
Os valores em não/proc/vmstat são por segundo, são totais desde a última inicialização (consulte linuxinsight.com/proc_vmstat.html ). Se você deseja classificar valores em alguma unidade de tempo, precisa fazer a diferença entre os valores - que é exatamente o que os utilitários gostam e podem fazer por você. /proc/vmstatvmstatsar
Devkev
1

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 é dado pela arquitetura da CPU, muitas arquiteturas suportam vários tamanhos de página diferentes, mas o tamanho da página mais comum na arquitetura x86_64 tem tamanho de 4KB. Esses parâmetros de que você fala estão mostrando quantas páginas de memória foram lidas / gravadas no disco e quantas são de troca.

Lembre-se de que a página in é uma atividade normal no kernel do Linux, isso acontece quase sempre quando você carrega um binário do disco (que não está armazenado em cache) na memória operacional - sempre que você inicia um 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 troca - que são os contadores pswpin e pswpout - eles são incrementados quando uma página de memória é gravada em troca ou quando é lida de troca.

Novamente - isso também não indica um problema, apenas indica problemas em determinadas circunstâncias - como quando você vê esses números mudando muito em um curto período de tempo (que geralmente ocorre quando o sistema está sem memória).

Então, em poucas palavras:

  • pgpgin, pgpgout - número de páginas lidas do disco e gravadas na memória, geralmente você não precisa se preocupar muito com esses números
  • pswpin, pswpout - você pode acompanhar esses números por vez (através de algum monitoramento como o prometheus); se houver picos, significa que o sistema está trocando muito e você tem um problema
Petr
fonte