Quelle est la différence exacte entre les paramètres (pgpgin, pswpin) et (pswpout, pgpgout) dans / proc / vmstat?


9

Veuillez noter que cette question est spécifique à linuxseulement. Et par swap space, je veux dire les dévoués swap partition.

J'ai fait googleun peu à ce sujet et j'ai trouvé ceux definitions- ci :

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.

et

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.

Maintenant, vous voudrez peut-être dupliquer cette question avec celles qui demandent des différences entre la pagination et l'échange. Mais j'en cherche un peu plus. À tout moment, ces compteurs /proc/vmstats'excluent-ils mutuellement? Par cela, je veux dire, le paramètre pswpininclut-il des comptes pgpginou des versets? Que se passe-t-il exactement quand un processus se produit deactivated? Si toutes ses pages sont déplacées dans l' swapespace, en quoi est-il exactement différent de plusieurs pageouts? De plus, si un pageinse produit chaque fois qu'un défaut de page se produit, que peut-on dire des deux autres paramètres pgmajfaultet pgfaultpar rapport à cet événement? Est-il vrai que chaque fois qu'un pagefault (major? minor?)se produit, un correspondant pageinse produit également?

Il serait utile de suggérer quelques exemples de programmes / benchmarks pour tester ces paramètres individuels.

PS: je peux continuer à ajouter / modifier les questions :)


Vous feriez mieux de déplacer cette question vers unix.stackexchange.com
Antonio

Réponses:


1
  1. pgpgin - Nombre de kilo-octets dans lesquels le système a paginé à partir du disque par seconde.
  2. pgpgout - Nombre de kilo-octets que le système a paginé sur le disque par seconde.
  3. pswpin - Nombre de kilo-octets que le système a échangés depuis le disque par seconde.
  4. pswpout - Nombre de kilo-octets que le système a échangé sur le disque par seconde.

5
Les valeurs de ne/proc/vmstat sont pas par seconde, elles sont totales depuis le dernier démarrage (voir linuxinsight.com/proc_vmstat.html ). Si vous voulez des valeurs de taux sur une certaine unité de temps, vous devez prendre la différence entre les /proc/vmstatvaleurs - c'est exactement ce que les services publics aiment vmstatet sarpeuvent faire pour vous.
devkev

2
pswpin / pswpout est le nombre de pages, pas de kilo-octets.
George Sovetov

1

Pour les derniers noyaux Linux pgpgin - Nombre de kilo-octets dans lesquels le système a paginé à partir du disque par seconde. pgpgout - Nombre de kilo-octets que le système a paginé sur le disque par seconde.

pswpin - Nombre de pages par seconde échangées par le système depuis le disque. pswpout - Nombre de pages que le système a échangées sur le disque par seconde.

Le pgpgin et le pgpgout indiquent essentiellement l'activité IO.

Comme indiqué dans l' e-mail


2
pswpi / pswpout = pages in / out pas kilo-octets in / out
IanB

5
Les valeurs de ne/proc/vmstat sont pas par seconde, elles sont totales depuis le dernier démarrage (voir linuxinsight.com/proc_vmstat.html ). Si vous voulez des valeurs de taux sur une certaine unité de temps, vous devez prendre la différence entre les /proc/vmstatvaleurs - c'est exactement ce que les services publics aiment vmstatet sarpeuvent faire pour vous.
devkev

1

Donc vieille question et pas de réponse correcte jusqu'à présent.

Tout d'abord, la mémoire est segmentée par CPU et noyau en pages dites. La taille de la page est donnée par l'architecture du processeur, de nombreuses architectures prennent en charge plusieurs tailles de page différentes, mais la taille de page la plus courante dans l'architecture x86_64 a une taille de 4 Ko. Ces paramètres dont vous parlez montrent combien de pages de mémoire ont été lues / écrites sur le disque et combien sont échangées.

Gardez à l'esprit que la page dans est une activité normale dans le noyau Linux, cela se produit presque chaque fois que vous chargez un binaire à partir du disque (qui n'est pas mis en cache) dans la mémoire d'exploitation - c'est-à-dire chaque fois que vous démarrez une application.

Parce que les opérations pgin et pgout ne sont pas toujours quelque chose dont vous devez vous inquiéter, des compteurs supplémentaires ont été créés qui contiennent uniquement des informations pour swap - c'est-à-dire les compteurs pswpin et pswpout - ils sont incrémentés lorsqu'une page mémoire est écrite dans swap ou lorsqu'elle est lue à partir de échanger.

Encore une fois - cela n'indique pas non plus un problème, cela n'indique un problème que dans certaines circonstances - comme lorsque vous voyez ces chiffres changer beaucoup en peu de temps (ce qui est généralement lorsque votre système est à court de mémoire).

Donc en bref:

  • pgpgin, pgpgout - nombre de pages lues sur le disque et écrites en mémoire, vous n'avez généralement pas besoin de vous soucier de ces chiffres
  • pswpin, pswpout - vous voudrez peut-être suivre ces chiffres à la fois (via une surveillance comme prometheus), s'il y a des pointes, cela signifie que le système est fortement échangé et que vous avez un problème
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.