Détermination de l'utilisation de la mémoire à l'aide de la commande vmstat

La commande vmstat récapitule la mémoire virtuelle active totale utilisée par tous les processus du système, ainsi que le nombre de trames de page de mémoire réelle sur la liste des espaces libres.

La mémoire virtuelle active est définie comme le nombre de pages de segment de travail de mémoire virtuelle qui ont été réellement touchées. Ce nombre peut être supérieur au nombre de trames de page réelles de la machine, car certaines pages de mémoire virtuelle actives ont peut-être été écrites dans l'espace de pagination.

Lorsque vous déterminez qu'un système peut manquer de mémoire ou qu'un réglage de la mémoire doit être effectué, exécutez la commande vmstat sur un intervalle défini et examinez les colonnes pi et po dans le rapport obtenu. Ces colonnes indiquent le nombre d'entrées par seconde et le nombre de sorties par seconde de l'espace de pagination. Si les valeurs sont constamment différentes de zéro, il peut y avoir un goulot d'étranglement de la mémoire. Avoir des valeurs différentes de zéro occasionnelles n'est pas un problème car la pagination est le principe principal de la mémoire virtuelle.
# vmstat 2 10
kthr     memory             page              faults        cpu
----- ----------- ------------------------ ------------ -----------
 r  b   avm   fre  re  pi  po  fr   sr  cy  in   sy  cs us sy id wa
 1  3 113726   124   0  14   6 151  600   0 521 5533 816 23 13  7 57
 0  3 113643   346   0   2  14 208  690   0 585 2201 866 16  9  2 73
 0  3 113659   135   0   2   2 108  323   0 516 1563 797 25  7  2 66
 0  2 113661   122   0   3   2 120  375   0 527 1622 871 13  7  2 79
 0  3 113662   128   0  10   3 134  432   0 644 1434 948 22  7  4 67
 1  5 113858   238   0  35   1 146  422   0 599 5103 903 40 16  0 44
 0  3 113969   127   0   5  10 153  529   0 565 2006 823 19  8  3 70
 0  3 113983   125   0  33   5 153  424   0 559 2165 921 25  8  4 63
 0  3 113682   121   0  20   9 154  470   0 608 1569 1007 15  8  0 77
 0  4 113701   124   0   3  29 228  635   0 674 1730 1086 18  9  0 73

Dans l'exemple de sortie ci-dessus, notez l'attente d'E-S élevée dans la sortie ainsi que le nombre d'unités d'exécution dans la file d'attente bloquée. D'autres activités d'E-S peuvent provoquer une attente d'E-S, mais dans ce cas particulier, l'attente d'E-S est très probablement due à la pagination à partir de l'espace de pagination.

Pour voir si le système a des problèmes de performances avec son VMM, consultez les colonnes sous memory et page :

  • memory

    Fournit des informations sur la mémoire réelle et la mémoire virtuelle.

    • avm

      La mémoire virtuelle active,avm, la colonne représente le nombre de pages de mémoire virtuelle actives présentes au moment où l'échantillon vmstat a été collecté. La règle d'espace de page différé est la règle par défaut. Dans le cadre de cette politique, la valeur deavmpeut être supérieur au nombre de pages d'espace de pagination utilisées. :NONE.avmLes statistiques n'incluent pas les pages de fichier.

    • fre

      :NONE.freindique le nombre moyen de pages de mémoire disponible. Une page est une zone de mémoire réelle de 4 Ko. Le système gère une mémoire tampon de pages de mémoire, appelée liste des espaces libres, qui est facilement accessible lorsque le VMM a besoin d'espace. Le nombre minimal de pages que le VMM conserve dans la liste des espaces libres est déterminé par le paramètre minfree de la commande vmo. Pour plus de détails, voir Optimisation du remplacement de page VMM.

      Lorsqu'une application se termine, toutes ses pages de travail sont immédiatement renvoyées à la liste des espaces libres. Ses pages ou fichiers persistants restent cependant dans la mémoire vive et ne sont pas rajoutés à la liste des espaces libres tant qu'ils ne sont pas volés par le VMM pour d'autres programmes. Les pages persistantes sont également libérées si le fichier correspondant est supprimé.

      Pour cette raison, la valeur fre peut ne pas indiquer toute la mémoire réelle pouvant être facilement disponible pour une utilisation par les processus. Si une trame de page est nécessaire, les pages persistantes liées aux applications terminées sont parmi les premières à être transmises à un autre programme.

      Si la valeur fre est nettement supérieure à la valeur maxfree, il est peu probable que le système subisse un emballement. L'emballement signifie que le système procède à une pagination en continu. Toutefois, si un emballement se produit sur le système, vous pouvez être assuré que la valeur fre est faible.

  • page

    Informations sur les défauts de page et l'activité de pagination. Ces informations sont moyennées sur l'intervalle et exprimées en unités par seconde.

    • re
      Remarque: cette colonne n'est actuellement pas prise en charge.
    • pi

      :NONE.piLa colonne indique le nombre de pages chargées à partir de l'espace de pagination. L'espace de pagination est la partie de la mémoire virtuelle qui réside sur le disque. Il est utilisé comme dépassement de capacité lorsque la mémoire est surchargée. L'espace de pagination est constitué de volumes logiques dédiés au stockage des pages de jeu de documents qui ont été volées dans la mémoire réelle. Lorsqu'une page volée est référencée par le processus, un défaut de page se produit et la page doit être lue en mémoire à partir de l'espace de pagination.

      En raison de la variété des configurations de matériel, de logiciels et d'applications, il n'y a pas de nombre absolu à rechercher. Cette zone est importante en tant qu'indicateur clé de l'activité de l'espace de pagination. Si une page d'entrée se produit, il doit y avoir eu une page de sortie précédente pour cette page. Il est également probable que dans un environnement à mémoire limitée, chaque page d'entrée force le vol d'une autre page et, par conséquent, une page de sortie.

    • po

      La colonne po indique le nombre (taux) de pages envoyées vers l'espace de pagination. Lorsqu'une page de mémoire de travail est volée, elle est écrite dans l'espace de pagination, si elle n'y réside pas encore ou si elle a été modifiée. Si elle n'est pas référencée à nouveau, elle reste sur l'unité de pagination jusqu'à ce que le processus se termine ou décline l'espace. Les références ultérieures aux adresses contenues dans les pages défectueuses entraînent des défauts de page, et les pages sont paginées individuellement par le système. Lorsqu'un processus se termine normalement, tout espace de pagination alloué à ce processus est libéré. Si le système lit un nombre important de pages persistantes, vous pouvez constatez une augmentation de la valeur de po sans augmentation correspondante de la valeur de pi. Cela n'indique pas nécessairement un emballement, mais peut justifier un examen des modèles d'accès aux données des applications.

    • fr

      Nombre de pages libérées par seconde par l'algorithme de remplacement de pages au cours de l'intervalle. Lorsque la routine de remplacement de pages VMM analyse la table de trames de page, ou PFT, elle utilise des critères pour sélectionner les pages à voler pour réapprovisionner la liste des espaces libres des trames de mémoire disponibles. Les critères incluent les deux types de pages, les pages de travail (de calcul) et les pages de fichiers (persistantes). Ce n'est pas parce qu'une page a été libérée qu'une E-S a eu lieu. Par exemple, si une page de stockage persistant (fichier) n'a pas été modifiée, elle ne sera pas réécrite sur le disque. Si les E-S ne sont pas nécessaires, les ressources système minimales sont requises pour libérer une page.

    • Sr

      Nombre de pages examinées par seconde par l'algorithme de remplacement de pages au cours de l'intervalle. L'algorithme de remplacement de pages peut avoir à analyser de nombreuses trames de page avant de pouvoir voler suffisamment pour satisfaire les seuils de remplacement de pages. Plus la valeur sr est élevée par rapport à la valeur fr, plus il est difficile pour l'algorithme de remplacement de pages de trouver les pages admissibles à voler.

    • cy

      Nombre de cycles par seconde de l'algorithme d'horloge. Le VMM utilise une technique appelée algorithme d'horloge pour sélectionner les pages à remplacer. Cette technique tire parti d'un bit référencé pour chaque page en tant qu'indication des pages récemment utilisées (référencées). Lorsque la routine de vol de page est appelée, elle parcourt la table PFT, en examinant le bit référencé de chaque page.

      La colonne cy indique le nombre de fois par seconde que le code de remplacement de pages a scanné la table PFT. Etant donné que la liste des espaces libres peut être réapprovisionnée sans analyse complète de la table PFT et que toutes les zones vmstat sont déclarées sous forme d'entiers, cette zone est généralement égale à zéro.

Une façon de déterminer la quantité de mémoire vive appropriée pour un système consiste à examiner la valeur la plus élevée pour avm telle qu'indiquée par la commande vmstat. Multipliez cette valeur par 4 Ko pour obtenir le nombre d'octets, puis comparez-le au nombre d'octets de mémoire vive sur le système. Idéalement, avm doit être inférieur à la mémoire vive totale. Si ce n'est pas le cas, une pagination de la mémoire virtuelle se produira. Le degré de pagination dépendra de la différence entre les deux valeurs. Rappelez-vous, l'idée de la mémoire virtuelle est qu'elle nous donne la possibilité de traiter plus de mémoire que nous n'en avons (une partie de la mémoire est dans la mémoire vive et le reste dans l'espace de pagination). Mais s'il y a beaucoup plus de mémoire virtuelle que de mémoire réelle, cela peut provoquer une pagination excessive qui entraîne des retards. Si avm est inférieure à la mémoire vive, la pagination de l'espace de pagination peut être provoquée par le remplissage de la mémoire vive avec des pages de fichier. Dans ce cas, le réglage des valeurs minperm,maxperm et maxclient peut réduire le degré de pagination de l'espace de pagination. Pour plus d'informations, voir Optimisation du remplacement de page VMM .