Sous-routine perfstat_disk
Objectif
Extrait les statistiques d'utilisation du disque individuel.
Bibliothèque
Bibliothèque Perfstat (libperfstat.a)
Syntaxe
#include <libperfstat.h>
int perfstat_disk (name, userbuff, sizeof_struct, desired_number)
perfstat_id_t *name;
perfstat_disk_t *userbuff;
size_t sizeof_struct;
int desired_number;Descriptif
La sous-routine perfstat_disk extrait une ou plusieurs statistiques d'utilisation du disque. La même fonction peut également être utilisée pour extraire le nombre d'ensembles de statistiques de disque disponibles.
Pour obtenir un ou plusieurs ensembles de métriques d'utilisation du disque, définissez le paramètre name sur le nom du premier disque pour lequel les statistiques sont souhaitées et définissez le paramètre desired_number . Pour démarrer à partir du premier disque, indiquez "" ou FIRST_DISK comme nom. Le paramètre userbuff doit toujours pointer vers une zone de mémoire suffisamment importante pour contenir le nombre souhaité de structures perfstat_disk_t qui seront copiées par cette fonction. A son retour, le paramètre name est défini sur le nom du disque suivant ou sur "" une fois que toutes les structures ont été copiées.
Pour extraire le nombre d'ensembles disponibles de métriques d'utilisation du disque, définissez les paramètres name et userbuff sur NULL et le paramètre desired_number sur 0. La valeur renvoyée sera le nombre d'ensembles disponibles.
La sous-routine perfstat_disk extrait des informations de la base de données ODM . Ces informations sont automatiquement mises en cache dans un dictionnaire, qui est supposé être gelé une fois chargé. La sous-routine perfstat_reset doit être appelée pour vider le dictionnaire chaque fois que la configuration de la machine a été modifiée.
Pour améliorer les performances du système, la collecte des statistiques d'entrée et de sortie des disques est désactivée par défaut dans les versions actuelles d'AIX.
chdev -l sys0 -a iostat=truelsattr -E -l sys0 -a iostatUne autre façon d'activer la collecte des statistiques d'entrée et de sortie du disque consiste à utiliser l'API sys_parm et l'indicateur SYSP_V_IOSTRUN :
struct vario var;
sys_parm(SYSP_GET,SYSP_V_IOSTRUN, &var);struct vario var;
var.v.v_iostrun.value=1; /* 1 to set & 0 to unset */
sys_parm(SYSP_SET,SYSP_V_IOSTRUN, &var);Paramètres
| Article | Descriptif |
|---|---|
| nom | Contient "", FIRST_DISK ou un nom identifiant le premier disque pour lequel les statistiques sont souhaitées. Par exemple : |
| buff utilisateur | Pointe vers la zone de mémoire à remplir avec une ou plusieurs structures perfstat_disk_t . |
| taille_struct | Indique la taille de la structure perfstat_disk_t : sizeof(perfstat_disk_t) |
| numéro_desired_ | Indique le nombre de structures perfstat_disk_t à copier dans userbuff. |
Valeurs renvoyées
A moins que la fonction ne soit utilisée pour extraire le nombre de structures disponibles, le nombre de structures qui sont remplies est renvoyé lorsque l'opération aboutit. En cas d'échec, la valeur -1 est renvoyée et la variable globale errno est définie.
Codes d'erreur
La sous-routine perfstat_disk échoue si l'une des conditions suivantes est vérifiée:
| Article | Descriptif |
|---|---|
EINVAL |
L'un des paramètres n'est pas valide. |
EFAULT |
Mémoire insuffisante. |
ENOMEM |
La longueur par défaut de la chaîne est trop courte. |
ENOMSG |
Impossible d'accéder au dictionnaire. |
Fichiers
Le fichier libperfstat.h définit les macros standard, les types de données et les sous-routines.