¿Cuál es la diferencia exacta entre los parámetros (pgpgin, pswpin) y (pswpout, pgpgout) en / proc / vmstat?

9

Tenga en cuenta que esta pregunta es específica linuxsolo para . Y por swap space, me refiero a los dedicados swap partition.

Hice googleun poco sobre esto, y encontré estos 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.

y

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.

Ahora, es posible que desee duplicar esta pregunta con las que preguntan sobre las diferencias entre paginación e intercambio. Pero busco un poco más. En algún momento, ¿son estos contadores /proc/vmstatmutuamente excluyentes? Con eso, quiero decir, ¿el parámetro pswpinincluye algunos recuentos pgpgino viceversa? ¿Qué sucede exactamente cuando es un proceso deactivated? Si todas sus páginas se mueven al swapespacio, entonces, ¿cómo es exactamente diferente de varias pageouts? Además, si pageinocurre un error cada vez que ocurre una página, ¿qué se puede decir sobre los otros dos parámetros pgmajfaulty pgfaultcon respecto a este evento? ¿Es el caso que cada vez que pagefault (major? minor?)ocurre un, pageintambién ocurre un correspondiente ?

Sería útil si se sugieren algunos programas / puntos de referencia de ejemplo para probar estos parámetros individuales.

PD: Puedo seguir agregando / editando las preguntas :)

Nehal J Wani
fuente
Será mejor que mueva esta pregunta a unix.stackexchange.com
Antonio

Respuestas:

1
  1. pgpgin: número de kilobytes que el sistema ha paginado desde el disco por segundo.
  2. pgpgout: número de kilobytes que el sistema ha paginado al disco por segundo.
  3. pswpin: número de kilobytes que el sistema ha intercambiado desde el disco por segundo.
  4. pswpout: número de kilobytes que el sistema ha cambiado al disco por segundo.
Kanti Varanasi
fuente
55
Los valores en no/proc/vmstat son por segundo, son totales desde el último arranque (consulte linuxinsight.com/proc_vmstat.html ). Si desea valores de tasa durante una unidad de tiempo, entonces debe tomar la diferencia entre los valores, que es exactamente lo que les gusta y pueden hacer las utilidades por usted. /proc/vmstatvmstatsar
devkev
2
pswpin / pswpout es el número de páginas, no kilobytes.
George Sovetov
1

Para los últimos núcleos de Linux pgpgin: número de kilobytes que el sistema ha paginado desde el disco por segundo. pgpgout: número de kilobytes que el sistema ha paginado al disco por segundo.

pswpin: número de páginas que el sistema ha intercambiado desde el disco por segundo. pswpout: número de páginas que el sistema ha cambiado al disco por segundo.

El pgpgin y pgpgout esencialmente indica actividad IO.

Como se señaló en el correo electrónico

Nikolai
fuente
2
pswpi / pswpout = páginas entrantes / salientes no kilobytes
entrantes
55
Los valores en no/proc/vmstat son por segundo, son totales desde el último arranque (consulte linuxinsight.com/proc_vmstat.html ). Si desea valores de tasa durante una unidad de tiempo, entonces debe tomar la diferencia entre los valores, que es exactamente lo que les gusta y pueden hacer las utilidades por usted. /proc/vmstatvmstatsar
devkev
1

Tan vieja pregunta y ninguna respuesta correcta hasta ahora.

En primer lugar, la memoria está segmentada por CPU y Kernel en las llamadas páginas. El tamaño de la página está dado por la arquitectura de la CPU, muchas arquitecturas admiten múltiples tamaños de página diferentes, pero el tamaño de página más común en la arquitectura x86_64 tiene un tamaño de 4KB. Estos parámetros de los que habla muestran cuántas páginas de memoria fueron leídas / escritas en el disco y cuántas de ellas son intercambiables.

Tenga en cuenta que la página es una actividad normal en el kernel de Linux, ocurre casi siempre que carga un archivo binario desde el disco (que no está en caché) en la memoria operativa, es decir, cada vez que inicia cualquier aplicación.

Debido a que las operaciones pgin y pgout no siempre son algo de lo que deba preocuparse, se crearon contadores adicionales que contienen solo información para el intercambio, es decir, los contadores pswpin y pswpout, se incrementan cuando una página de memoria se escribe en el intercambio o cuando se lee desde intercambiar.

Nuevamente, esto tampoco indica un problema, solo indica un problema en ciertas circunstancias, como cuando ve que estos números cambian mucho en un período corto de tiempo (que generalmente es cuando su sistema no tiene memoria).

En pocas palabras:

  • pgpgin, pgpgout: número de páginas que se leen del disco y se escriben en la memoria, por lo general, no necesita preocuparse demasiado por estos números
  • pswpin, pswpout: es posible que desee realizar un seguimiento de estos números por vez (a través de un monitoreo como prometheus), si hay picos, significa que el sistema está cambiando fuertemente y tiene un problema
Petr
fuente