Veuillez noter que cette question est spécifique à linux
seulement. Et par swap space
, je veux dire les dévoués swap partition
.
J'ai fait google
un 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/vmstat
s'excluent-ils mutuellement? Par cela, je veux dire, le paramètre pswpin
inclut-il des comptes pgpgin
ou des versets? Que se passe-t-il exactement quand un processus se produit deactivated
? Si toutes ses pages sont déplacées dans l' swap
espace, en quoi est-il exactement différent de plusieurs pageouts
? De plus, si un pagein
se produit chaque fois qu'un défaut de page se produit, que peut-on dire des deux autres paramètres pgmajfault
et pgfault
par rapport à cet événement? Est-il vrai que chaque fois qu'un pagefault (major? minor?)
se produit, un correspondant pagein
se 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 :)
la source
Réponses:
la source
/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/vmstat
valeurs - c'est exactement ce que les services publics aimentvmstat
etsar
peuvent faire pour vous.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
la source
/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/vmstat
valeurs - c'est exactement ce que les services publics aimentvmstat
etsar
peuvent faire pour vous.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:
la source