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

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

Tenga en cuenta que esta pregunta es específica linuxúnicamente 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, ¿estos contadores son /proc/vmstatmutuamente excluyentes? Con esto quiero decir, ¿el parámetro pswpinincluye algunos recuentos desde pgpgino viceversa? ¿Qué sucede exactamente cuando un proceso es deactivated? Si todas sus páginas se mueven al swapespacio, ¿en qué se diferencia exactamente de varias pageouts? Además, si pageinocurre a cada vez que ocurre un error de página, ¿qué se puede decir sobre los otros dos parámetros pgmajfaulty pgfaultcon respecto a este evento? ¿Es cierto que siempre que ocurre a , también ocurre pagefault (major? minor?)lo correspondiente ?pagein

Sería útil que se sugirieran algunos programas o puntos de referencia de ejemplo para probar estos parámetros individuales.

PD: puedo seguir agregando/editando las preguntas :)

Respuesta1

Una pregunta muy antigua y hasta ahora no hay una respuesta correcta.

En primer lugar, la memoria se segmenta por CPU y Kernel en las llamadas páginas. El tamaño de la página viene dado por la arquitectura de la CPU, muchas arquitecturas admiten varios 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 4 KB. Estos parámetros de los que habla muestran cuántas páginas de memoria se leyeron/escribieron en el disco y cuántas de ellas se intercambian.

Manten eso en mentepágina enes una actividad normal en el kernel de Linux, ocurre casi cada vez que carga un binario desde el disco (que no está almacenado en caché) en la memoria operativa, es decir, cada vez que inicia una 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 swap (es decir, los contadores pswpin y pswpout) que se incrementan cuando una página de memoria se escribe en swap o cuando se lee desde intercambio.

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

Entonces, en pocas palabras:

  • pgpgin, pgpgout: número de páginas que se leen desde el disco y se escriben en la memoria; normalmente no es necesario preocuparse mucho por estos números
  • pswpin, pswpout: es posible que desees realizar un seguimiento de estos números cada vez (a través de algún tipo de monitoreo como Prometheus), si hay picos significa que el sistema está cambiando mucho y que tienes un problema.

Respuesta2

  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 intercambiado en el disco por segundo.

información relacionada