6.2.3.1 StorePerf: benchmark VoD pour le système de stockage

Pour vérifier les performances réelles d'un système de stockage, nous avons mis au point un logiciel (StorePerf) capable de calculer ces performances en chargeant au maximum le système. Pour déterminer les résultats pertinents pour la VoD, StorePerf crée sur le système de stockage un jeu de fichiers de taille importante (minimum 256 MB par fichier, en fonction de l'espace de stockage). Pour chaque fichier StorePerf démarre un fil d'exécution (thread) qui exécute des lectures avec une certaine taille de bloc et à un débit préétabli. Cette simulation de serveur VoD (en mode lecture seule sur le système de stockage) produit une série des résultats que l'on utilise pour prévoir les performances possibles d'un serveur VoD. En quelque sorte, StorePerf est la version applique de ( 11 ).

Le StorePerf s'exécute dans la ligne des commandes de Windows (CMD.EXE), et il est démarré avec la syntaxe :

  • storeperf [-Rf ReadFilesize] [-Rc ReadClients] [-Rb ReadBlocksize] [-Rt ReadThroughput] [-Wf WriteFilesize] [-Wc WriteClients] [-Wb WriteBlocksize] [-Wt WriteThroughput] [-o outputFile] [-t time] [-g graphUpdate] [-n graphName] [-a AccesType]

où la signification des paramètres est :

  • ReadFilesize : la taille d'un fichier en lecture ; il sera créé par le logiciel,

  • ReadClients : le nombre de clients en lecture (chaque client aura son propre fichier),

  • ReadBlocksize : la taille d'un bloc dans chaque opération de lecture,

  • ReadThroughput : le débit contrôlé pour un client en lecture (mesuré en octets par seconde) ; s'il a la valeur 0 le logiciel essaye d'obtenir le débit maximal possible,

  • WriteFilesize : la taille d'un fichier en écriture ; il sera crée par le logiciel et rempli d'une manière cyclique : chaque fois qu'il est plein les données sont écrites depuis le début du fichier,

  • WriteClients : le nombre de clients en écriture (chaque client aura son propre fichier),

  • WriteBlocksize : la taille d'un bloc dans chaque opération d'écriture,

  • WriteThroughput : le débit contrôlé pour un client en écriture (mesuré en bps),

  • outputFile : le fichier qui va contenir les résultats,

  • time : la durée d'exécution,

  • graphUpdate : la période de rafraîchissement du graphique,

  • graphName : le nom du graphique contenant les résultats,

  • AccesType : l'API Windows utilisée pour accéder aux données (CFile::Read, mmioRead, ReadFile ou _read).

Pour calculer les performances maximales en lecture d'un système de stockage pour 10 clients concurrents sur des fichiers de 100 MBytes avec des lectures de blocs de 8 KBytes à la foi on utilise la syntaxe :

  • StorePerf -Rf 100 -Rc 10 -Rb 8192 -Rt 0 -o "test.txt" -t 600 -g 5