commande rmss

Objectif

Simule un système avec différentes tailles de mémoire pour tester les performances des applications.

Syntaxe

rmss -c MemSize

rmss -r

rmss -p

rmss [ -d MemSize ] [ -f MemSize ] [ -n NumIterations ] [ -o OutputFile ] [ -s MemSize ] Commande

Descriptif

La commande rmss simule un système avec différentes tailles de mémoire réelle, sans avoir à extraire et à remplacer les cartes mémoire. En exécutant une application avec plusieurs tailles de mémoire et en collectant des statistiques de performances, vous pouvez déterminer la mémoire nécessaire pour exécuter une application avec des performances acceptables. La commande rmss peut être appelée pour l'une des deux raisons suivantes:

  • Pour modifier la taille de la mémoire, puis quittez, à l'aide des indicateurs -c , -p et -r . Cela vous permet d'expérimenter librement avec une taille de mémoire donnée.
  • Pour fonctionner en tant que programme de pilote, à l'aide des indicateurs -s , -f , -d , -n et -o . Dans ce mode, la commande rmss exécute une commande spécifiée plusieurs fois sur une plage de tailles de mémoire et affiche des statistiques importantes décrivant les performances des commandes à chaque taille de mémoire. La commande peut être un fichier exécutable ou un fichier script shell, avec ou sans arguments de ligne de commande.

La commande rmss est incompatible avec le sous-système de reprise après incident. Si un événement de reprise après incident se produit lors de l'exécution de la commande rmss , le système peut se bloquer. Etant donné que la fonction de suppression de mémoire de la commande rmss peut être remplacée par la fonction de suppression de mémoire de reprise après incident à l'aide de la commande drmgr , le texte d'information de la commande rmss doit être modifié avec cet avertissement:

Attention: La commande rmss est incompatible avec le composant DLPAR AIX et son utilisation peut entraîner un système bloqué. La commande drmgr fournit une fonction de suppression de mémoire sécurisée dans un environnement DLPAR.
Attention: Lorsque rmss est utilisé sur un système de pools de mémoire multiples, il peut échouer avec:
Failure: VMM unable to free enough frames for stealing.
Choose a larger memory size or retry with less system activity.

Ou un message similaire. Cet échec peut se produire lorsque rmss a volé toutes les trames d'un pool de mémoire et qu'il ne peut pas voler les trames d'autres pools. Une solution palliative consiste à réduire la mémoire par incréments.

Le nombre et la taille des pools de mémoire sur un système peuvent être extraits à l'aide de la commande suivante:

echo "mempool *" | kdb

Les indicateurs -c, -pet -r s'excluent mutuellement. L'indicateur -c modifie la taille de la mémoire ; l'indicateur -p affiche la taille de la mémoire en cours et l'indicateur -r réinitialise la taille de la mémoire à la taille de la mémoire réelle de la machine.

Les indicateurs -s, -f, -d, -net -o sont utilisés en combinaison lorsque la commande rmss est appelée en tant que programme pilote pour exécuter et mesurer les performances d'une commande (où une commande est un fichier exécutable ou un fichier script shell) sur une plage de tailles de mémoire. Lorsqu'elle est appelée de cette manière, la commande rmss affiche des statistiques de performances, telles que le temps de réponse de la commande et le nombre de chargements de page qui se sont produits lors de l'exécution de la commande, pour chaque taille de mémoire. Ces statistiques, qui sont également écrites dans un fichier, sont décrites dans ce exemple.

Les indicateurs -s et -f indiquent les points de début et de fin de la plage, tandis que l'indicateur -d indique l'incrément ou le décrément entre les tailles de mémoire de la plage. L'indicateur -n est utilisé pour spécifier le nombre de fois où la commande doit être exécutée à chaque taille de mémoire, et l'indicateur -o est utilisé pour spécifier le nom d'un fichier de sortie dans lequel écrire le rapport rmss . Le paramètre Commande spécifie la commande à exécuter et à mesurer à chaque taille de mémoire.

Remarque :
  1. La commande rmss indique que la mémoire réelle est "utilisable". Sur les machines où la mémoire est mauvaise ou où le système l'utilise, rmss indique la quantité de mémoire réelle sous la forme de la quantité de mémoire réelle physique moins la mémoire qui est mauvaise ou en cours d'utilisation par le système. Par exemple, l'utilisation de l'indicateur rmss -r pourrait produire un rapport :
    Simulated Memory Size changed to 79.9062MB
    Cela peut être dû au fait que certaines pages sont marquées comme étant incorrectes ou au fait qu'un périphérique réserve certaines pages à son propre usage (et donc non accessibles à l'utilisateur).
  2. La commande rmss peut sous-estimer le nombre de chargements de page requis pour exécuter une application si l'application, combinée à des processus d'arrière-plan tels que des démons, accède à un grand nombre de fichiers différents (y compris des fichiers de répertoire). Le nombre de fichiers différents auxquels il faut accéder pour générer de tels résultats est d'environ 250 fichiers par 8MB de taille de mémoire simulée. Le tableau suivant indique le nombre approximatif de fichiers différents qui, lorsqu'ils sont consultés à la taille de mémoire simulée donnée, peuvent entraîner une sous-estimation des exigences de chargement de page par la commande rmss .
    Taille de mémoire simulée (Mo) Accès à différents fichiers
    8 250
    16 500
    24 750
    32 1 000
    48 1500
    64 2 000
    128 4 000
    256 8 000

Vous pouvez utiliser la commande démon de fichiers pour déterminer le nombre de fichiers accessibles lors de l'exécution de votre commande, si vous pensez qu'elle peut accéder à de nombreux fichiers différents.

Indicateurs

Article Descriptif
-c MemSize Remplace la taille de la mémoire simulée par la valeur MemSize , qui est un entier ou une fraction décimale en mégaoctets. La variable MemSize doit être comprise entre 8MB et la taille de mémoire réelle de la machine. Il n'existe pas de valeur par défaut pour l'indicateur -c .
Remarque: Il est difficile de modifier la taille de la mémoire simulée pour qu'elle soit inférieure à 8MB, en raison de la taille des structures système inhérentes telles que le noyau.
-d MemSize Indique l'incrément ou le décrément entre les tailles de mémoire à simuler. La valeur MemSize est un entier ou une fraction décimale en mégaoctets. Si l'indicateur -d est omis, l'incrément ou le décrément sera de 8MB.
-f MemSize Indique la taille de mémoire finale. Vous devez terminer le test du système simulé en exécutant la commande en cours de test à une taille de mémoire simulée donnée par la variable MemSize , qui est un entier ou une fraction décimale en mégaoctets. La variable MemSize doit être comprise entre 4MB et la taille de mémoire réelle de la machine. Si l'indicateur -f est omis, la taille de la mémoire finale sera de 8MB.
Remarque: Il est difficile de se terminer à une taille de mémoire simulée inférieure à 8MB en raison de la taille des structures système inhérentes telles que le noyau.
-n NumIterations Indique le nombre de fois où la commande doit être exécutée et mesurée, à chaque taille de mémoire. Il n'existe pas de valeur par défaut pour l'indicateur -n . Si l'indicateur -n est omis, lors de l'initialisation de la commande rmss , la commande rmss détermine combien d'itérations de la commande en cours de test sont nécessaires pour accumuler une durée d'exécution totale de 10 secondes, puis exécute la commande autant de fois à chaque taille de mémoire.
Remarque: La commande rmss exécute toujours la commande une fois à chaque taille de mémoire avant les exécutions mesurées. Ceci prépare la simulation pour le test réel.
-o OutputFile Indique le fichier dans lequel écrire le rapport rmss . Si l'indicateur -o est omis, le rapport rmss est écrit dans le fichier rmss.out. En outre, le rapport rmss est toujours écrit dans la sortie standard.
-P Affiche la taille de la mémoire simulée en cours.
-r Réinitialise la taille de la mémoire simulée à la taille de la mémoire réelle de la machine.
-s MemSize Indique la taille de la mémoire de départ. Commencez par exécuter la commande à une taille de mémoire simulée spécifiée par la variable MemSize , qui est un entier ou une fraction décimale en mégaoctets. La variable MemSize doit être comprise entre 4MB et la taille de mémoire réelle de la machine. Si l'indicateur -s est omis, la taille de la mémoire de départ correspond à la taille de la mémoire réelle de la machine.
Remarque: Il est difficile de démarrer avec une taille de mémoire simulée inférieure à 8MB, en raison de la taille des structures système inhérentes telles que le noyau.
Commande Indique la commande à exécuter et à mesurer à chaque taille de mémoire. Le paramètre Commande peut être un fichier exécutable ou un fichier script shell, avec ou sans arguments de ligne de commande. Il n'existe pas de commande par défaut.

Statut de sortie

Cette commande renvoie les valeurs de sortie suivantes :

Article Descriptif
0 % L'opération a abouti.
>0 Une erreur s'est produite.

Security

Contrôle d'accès: Vous devez disposer des droits d'accès root pour exécuter cette commande.

Utilisateurs RBAC d'attention: cette commande peut effectuer des opérations privilégiées. Seuls les utilisateurs privilégiés peuvent exécuter des opérations privilégiées. Pour plus d'informations sur les autorisations et les privilèges, consultez la base de données des commandes privilégiées disponible dans Sécurité. Pour la liste des privilèges et autorisations associés à cette commandes, reportez-vous à la commande lssecattr ou à la sous-commande getcmdattr.

Exemples

  1. Pour remplacer la taille de la mémoire par 13.5MB, entrez:
    rmss -c 13.5
  2. Pour imprimer la taille de la mémoire en cours, entrez:
    rmss -p
  3. Pour réinitialiser la taille de la mémoire réelle de la machine, entrez:
    rmss -r
  4. Pour examiner les performances de la commandecc -O foo.csur les tailles de mémoire 32, 24, 16 et 8MB; , exécutez et mesurez la commande une fois à chaque taille de mémoire ; puis écrivez le rapport dans lecc.rmss.outfichier, entrez:
    rmss -s 32 -f 8 -d 8 -n 1 -o cc.rmss.out cc -O foo.c
  5. Pour examiner les performances de la séquence de commandes dans lefoo.shfichier script shell sur les tailles de mémoire commençant à la taille de mémoire réelle de la machine et se terminant à 8MB, par incréments de 8MB; laisser la commande rmss déterminer le nombre d'itérations à exécuter et mesurer lefoo.shà classer chaque taille de mémoire, puis écrire le rapport rmss dans le fichierrmss.out(avec toutes les valeurs par défaut utilisées dans cet appel de la commande rmss ), entrez ce qui suit:
    rmss foo.sh
  6. Pour examiner les performances de l'exécutablebarsur les tailles de mémoire de 8MB à 16MB, par incréments d'exécution et de mesure de 0.5MB;bardeux fois à chaque taille de mémoire ; et écrivez le rapport dans lebar.rmss.outfichier, entrez:
    rmss -s 8 -f 16 -d .5 -n 2 -o bar.rmss.out bar
  7. Lorsqu'une combinaison des indicateurs -s, -f, -d, -net -o est utilisée, la commande rmss s'exécute en tant que programme pilote, qui exécute une commande plusieurs fois sur une plage de tailles de mémoire, et affiche des statistiques décrivant les performances de la commande à chaque taille de mémoire.

    Voici un exemple de rapport imprimé par la commande rmss :

    Hostname:  xray.austin.ibm.com
    Real memory size:   48.00 Mb
    Time of day:  Wed Aug  8 13:07:33 1990
    Command:  cc -O foo.c
    Simulated memory size initialized to  24.00 Mb.
    Number of iterations per memory size = 1 warmup + 1 measured = 2.
    Memory size  Avg. Pageins  Avg. Response Time   Avg. Pagein Rate
    (megabytes)                       (sec.)           (pageins/sec.)
       -----------------------------------------------------------------
    24.00             0.0              113.7                0.0
    22.00             5.0              114.8                0.0
    20.00             0.0              113.7                0.0
    18.00             3.0              114.3                0.0
    16.00             0.0              114.6                0.0
    14.00             139.0            116.1                1.2
    12.00             816.0            126.9                6.4
    10.00             1246.0           135.7                9.2
    8.00              2218.0           162.9                13.6
    Ce rapport a été généré par la commande suivante:
    rmss -s 24 -f 8 -d 2 -n 1 cc -O foo.c
    La première partie du rapport fournit des informations générales, y compris la machine sur laquelle la commande rmss s'exécutait, la taille de la mémoire réelle de cette machine, l'heure et la date, ainsi que la commande qui était mesurée. Les deux lignes suivantes fournissent des messages d'information qui décrivent l'initialisation de la commande rmss . Ici, la commande rmss indique qu'elle a initialisé la taille de mémoire simulée sur 24MB, qui était la taille de mémoire de départ indiquée avec l'indicateur -s . En outre, la commande rmss imprime le nombre d'itérations que la commande exécutera à chaque taille de mémoire. La commande doit être exécutée deux fois à chaque taille de mémoire: une fois pour l'échauffement et une fois lorsque ses performances sont mesurées. Le nombre d'itérations a été spécifié par l'indicateur -n .

    La partie suivante du rapport fournit les informations suivantes pour chaque taille de mémoire sur laquelle la commande a été exécutée:

    • Taille de la mémoire, ainsi que le nombre moyen de chargements de page qui se sont produits lors de l'exécution de la commande
    • Temps de réponse moyen de la commande
    • Taux moyen de chargement de page qui s'est produit lors de l'exécution de la commande.
      Remarque: Les valeurs de taux moyen de chargements de page et de taux moyen de chargements de page incluent toutes les chargements de page qui se sont produits lors de l'exécution de la commande, et pas seulement ceux lancés par la commande.

Fichiers

Article Descriptif
/usr/bin/rmss Contient la commande rmss .