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.

Pour activer la collecte de ces données, exécutez:
chdev -l sys0 -a iostat=true
Pour afficher le paramètre en cours, exécutez:
lsattr -E -l sys0 -a iostat

Une 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 :

Pour obtenir le statut de l'indicateur, exécutez la commande suivante:
struct vario var;
sys_parm(SYSP_GET,SYSP_V_IOSTRUN, &var);
Pour définir l'indicateur, exécutez la commande suivante:
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

Tableau 1. Paramètres
Article Descriptif
nom Contient "", FIRST_DISK ou un nom identifiant le premier disque pour lequel les statistiques sont souhaitées. Par exemple :
hdisk0, hdisk1, ...
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.