Qual è la differenza esatta tra i parametri (pgpgin, pswpin) e (pswpout, pgpgout) in / proc / vmstat?


9

Questa domanda è specifica linuxsolo per. E swap spaceintendo il dedicato swap partition.

Ho fatto googleun po 'su questo e ho trovato questi 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.

Ora, potresti voler duplicare questa domanda con quelli che chiedono differenze tra paginazione e scambio. Ma cerco un po 'di più. In qualsiasi momento, questi contatori si /proc/vmstatescludono a vicenda? Con questo, intendo, il parametro pswpininclude alcuni conteggi pgpgino viceversa? Cosa succede esattamente quando un processo è deactivated? Se tutte le sue pagine vengono spostate nello swapspazio, allora come è esattamente diverso da più pageouts? Inoltre, se si pageinverifica un errore ogni volta che si verifica un errore di pagina, cosa si può dire degli altri due parametri pgmajfaulte pgfaultrispetto a questo evento? È il caso che ogni volta che si pagefault (major? minor?)verifica, pageinsi verifica anche un corrispondente ?

Sarebbe utile se venissero suggeriti alcuni esempi di programmi / benchmark per testare questi singoli parametri.

PS: potrei continuare ad aggiungere / modificare le domande :)


Faresti meglio a spostare questa domanda su unix.stackexchange.com
Antonio,

Risposte:


1
  1. pgpgin - Numero di kilobyte su cui il sistema ha eseguito il paging dal disco al secondo.
  2. pgpgout - Numero di kilobyte che il sistema ha eseguito il paging su disco al secondo.
  3. pswpin - Numero di kilobyte che il sistema ha scambiato dal disco al secondo.
  4. pswpout - Numero di kilobyte che il sistema ha scambiato su disco al secondo.

5
I valori in non/proc/vmstat sono al secondo, sono totali dall'ultimo avvio (vedi linuxinsight.com/proc_vmstat.html ). Se vuoi valori di tasso in alcune unità di tempo, allora devi prendere la differenza tra i valori - che è esattamente ciò che le utility piacciono e possono fare per te. /proc/vmstatvmstatsar
devkev,

2
pswpin / pswpout è il numero di pagine, non i kilobyte.
George Sovetov,

1

Per gli ultimi kernel Linux pgpgin - Numero di kilobyte su cui il sistema ha effettuato il paging dal disco al secondo. pgpgout - Numero di kilobyte che il sistema ha eseguito il paging su disco al secondo.

pswpin - Numero di pagine che il sistema ha scambiato dal disco al secondo. pswpout - Numero di pagine che il sistema ha scambiato su disco al secondo.

Pgpgin e pgpgout indicano essenzialmente l'attività IO.

Come sottolineato nell'e-mail


2
pswpi / pswpout = pagine in / out non in kilobyte in / out
IanB

5
I valori in non/proc/vmstat sono al secondo, sono totali dall'ultimo avvio (vedi linuxinsight.com/proc_vmstat.html ). Se vuoi valori di tasso in alcune unità di tempo, allora devi prendere la differenza tra i valori - che è esattamente ciò che le utility piacciono e possono fare per te. /proc/vmstatvmstatsar
devkev,

1

Così vecchia domanda e nessuna risposta corretta finora.

Innanzitutto, la memoria è segmentata da CPU e kernel in cosiddette pagine. La dimensione della pagina è data dall'architettura della CPU, molte architetture supportano più dimensioni di pagina diverse, ma le dimensioni della pagina più comuni nell'architettura x86_64 hanno dimensioni 4KB. Questi parametri di cui parli mostrano quante pagine di memoria sono state lette / scritte sul disco e quante di esse sono scambiate.

Tieni presente che la pagina in è un'attività normale nel kernel Linux, succede quasi ogni volta che carichi un binario dal disco (che non è memorizzato nella cache) nella memoria operativa, cioè ogni volta che avvii un'applicazione.

Poiché le operazioni pgin e pgout non sono sempre qualcosa di cui devi preoccuparti, sono stati creati contatori aggiuntivi che contengono solo informazioni per lo scambio - ovvero i contatori pswpin e pswpout - vengono incrementati quando una pagina di memoria viene scritta in swap o quando viene letta da scambiare.

Ancora una volta - anche questo non indica un problema, indica solo un problema in determinate circostanze - come quando vedi questi numeri cambiare molto in un breve periodo di tempo (che di solito è quando il tuo sistema ha memoria insufficiente).

Quindi, in poche parole:

  • pgpgin, pgpgout - numero di pagine che vengono lette dal disco e scritte in memoria, di solito non è necessario preoccuparsi troppo di questi numeri
  • pswpin, pswpout - potresti voler tenere traccia di questi numeri alla volta (tramite alcuni monitoraggi come Prometeo), se ci sono picchi significa che il sistema sta cambiando pesantemente e hai un problema
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.