Les exemples contenus dans cette rubrique montrent comment utiliser rcapstat pour surveiller l'utilisation des ressources par les ensembles de processus pour lesquels des limites d'utilisation de la mémoire physique ont été définies.
Des limites d'utilisation sont définies pour deux noeuds limites associés à deux utilisateurs. La limite d'utilisation définie pour user1 est de 50 méga-octets et celle définie pour user2 est de 10 méga-octets.
La commande ci-dessous permet d'élaborer des rapports avec une fréquence d'échantillonnage de 5 secondes. Cinq rapports seront émis, un après chaque échantillonnage.
usermachine% rcapstat 5 5 id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 50M 0K 0K 0K 0K 78194 user2 1 2368K 1928K 10M 0K 0K 0K 0K |
Les trois premières lignes de la sortie constituent le premier rapport, qui contient les informations relatives aux limites d'utilisation et aux noeuds pour les deux noeuds limites, et les statistiques de pagination depuis le démarrage de rcapd. Les colonnes at et pg contiennent une valeur supérieure à zéro pour user1 et nulle pour user2. Cela indique que user1 a dépassé sa limite d'utilisation à un moment donné de l'historique du démon, mais pas user2.
Les rapports suivants contiennent des statistiques de pagination depuis les intervalles précédents, mais ne montrent aucune activité significative.
La commande limadm(1MSRM) peut être utilisée pour abaisser la limite d'utilisation de mémoire d'un noeud limite, ce qui rend la limitation encore plus restrictive. rcapd applique la nouvelle limite d'utilisation à l'échéance du prochain intervalle de configuration (consultez la page de manuel rcapadm( 1MSRM)). Un signal peut également être envoyé pour provoquer une application immédiate de la nouvelle limite d'utilisation par rcapd.
admin# limadm set rss.limit=30M user1 admin# pkill -HUP rcapd |
La commande ci-dessous permet d'élaborer des rapports avec une fréquence d'échantillonnage de 5 secondes. Cinq rapports seront émis, un après chaque échantillonnage.
admin# rcapstat 5 5 id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 35M 30M 50M 0K 3312K 0K 78194 user2 1 2368K 1856K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 36M 30M 52M 52M 632K 632K 78194 user2 1 2368K 2096K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 33M 30M 57M 52M 816K 632K 78194 user2 1 2368K 1968K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 27M 30M 4792K 4792K 40K 40K 78194 user2 1 2368K 1144K 10M 0K 0K 0K 0K id lnode nproc vm rss cap at avgat pg avgpg 112270 user1 24 123M 27M 30M 0K 0K 0K 0K 78194 user2 1 2368K 1144K 10M 0K 0K 0K 0K |
Lorsque la limite d'utilisation a été abaissée à 30 méga-octets au lieu de 50, rcapd a répondu en tentant de renvoyer les 6 méga-octets de mémoire résidente excédentaires par rapport à la limite d'utilisation. Cet objectif a été atteint ; il n'était dépassé que de peu.
La commande ci-dessous permet d'élaborer des rapports avec une fréquence d'échantillonnage de 5 secondes. Cinq rapports seront émis, un après chaque échantillonnage.
user1machine% rcapstat 5 5 |
id project nproc vm rss cap at avgat pg avgpg 376565 user1 57 209M 46M 10M 440M 220M 5528K 2764K 376565 user1 57 209M 44M 10M 394M 131M 4912K 1637K 376565 user1 56 207M 43M 10M 440M 147M 6048K 2016K 376565 user1 56 207M 42M 10M 522M 174M 4368K 1456K 376565 user1 56 207M 44M 10M 482M 161M 3376K 1125K |
Dans cet exemple, le projet user1 a une taille RSS qui dépasse la limite d'utilisation de la mémoire physique. Les valeurs autres que zéro qui figurent dans la colonne pg indiquent que rcapd libère constamment de la mémoire pour tenter de respecter la limite en abaissant l'utilisation de la mémoire physique par les processus du projet. Comme le montrent les valeurs changeantes de rss, qui ne diminuent pas en conséquence, rcapd n'y parvient pas. Cela signifie que la mémoire résidente de l'application est activement utilisée, ce qui force rcapd à agir sur l'ensemble actif. Dans ces conditions, le système continue à enregistrer de forts taux de défaillance de pages et un trafic d'E/S correspondant, jusqu'à ce que l'ensemble actif soit réduit, que la limite soit abaissée ou que l'application change son schéma d'accès à la mémoire.
L'exemple ci-dessous est une suite de l'exemple précédent et utilise le même projet.
example% rcapstat 5 5 id project nproc vm rss cap at avgat pg avgpg 376565 user1 56 207M 44M 10M 381M 191M 15M 7924K 376565 user1 56 207M 46M 10M 479M 160M 2696K 898K 376565 user1 56 207M 46M 10M 424M 141M 7280K 2426K 376565 user1 56 207M 43M 10M 401M 201M 4808K 2404K 376565 user1 56 207M 43M 10M 456M 152M 4800K 1600K 376565 user1 56 207M 44M 10M 486M 162M 4064K 1354K 376565 user1 56 207M 52M 100M 191M 95M 1944K 972K 376565 user1 56 207M 55M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K 376565 user1 56 207M 56M 100M 0K 0K 0K 0K |
Il est possible de faire de l'ensemble résident l'ensemble actif du projet en empêchant l'application des limites d'utilisation, et cela soit en augmentant celle d'un projet, soit en changeant la valeur minimum de mise en application des limites d'utilisation (consultez la page de manuel rcapadm(1MSRM)). La colonne rss peut se stabiliser et afficher la taille de l'ensemble actif du projet, comme dans cet exemple. C'est la valeur minimum qui permet aux processus du projet de fonctionner sans connaître perpétuellement des erreurs de pagination.