dimanche, décembre 22, 2024
Nom d'utilisateur : Mot de passe :
Home > Scripts Bash > Shell quickies > Script de benchmark FS et disque
[NEWS]
Envoyé par unreal
On a reçu une nouvelle baie de stockage au travail, et comme je voulais être sûr de la fiabilité de la solution avant la mise en production, j'ai conçu une battérie de tests, dont le script suivant. Son but est de générer un très grand nombre (un million) de fichiers vides afin de mesurer l'efficacité du contrôleur RAID à travailler sur beaucoup de fichiers et de détecter des bugs de verouillage dans l'implémentation NFS de l'éditeur de la solution, sans oublier les performances de l'ensemble.
Il peut s'utiliser directement sur un disque local pour vérifier un contrôleur RAID, sur un partage SMB ou NFS ou bien sur un disque SAN ou iSCSI.

Quand la génération est terminée, je conseille un petit rm -rf /mnt/nfs/temp pour finir le test...

manyfiles.sh
#!/bin/bash

##################################################
# Date    : 20090417                             #
# License : BSD                                 #
# Author : dev -at- slashorg -dot- net         #
#                                                #
# About : FS and disk benching tool.         #
##################################################

FILECOUNT=1000000
FILEPERDIR=5000

COPYTO=/mnt/nfs/test

OSTYPE=`uname`

[ "$OSTYPE" == "Linux" ] && DIRSEQ=`seq -s " " -w 1000`
[[ "$OSTYPE" == "Darwin" || "$OSTYPE" == "FreeBSD" ]] && DIRSEQ=`jot -w %03d -s " " 1000`

ANS="N"
[ -d "$COPYTO" ] && echo -n "*** $COPYTO exists. Delete? (Y/N) " && read ANS

[ "$ANS" == "Y" ] && echo " -> $COPYTO deleted." && rm -rf "$COPYTO"

[ ! -d "$COPYTO" ] && mkdir -p "$COPYTO"

echo -n "Progress: "

I=0

for ONESEQ in $DIRSEQ; do
        mkdir "$COPYTO/$ONESEQ" && cd "$COPYTO/$ONESEQ"
        [ "$OSTYPE" == "Linux" ] && touch `seq -s " " -w $FILEPERDIR`
        [[ "$OSTYPE" == "Darwin" || "$OSTYPE" == "FreeBSD" ]] && touch `jot -w %04d -s " " $FILEPERDIR`
        echo -n "."

        I=$(( $I + $FILEPERDIR ))

        [ $I -ge $FILECOUNT ] && echo " done." && exit
done



Posté le 17/04/09 à 16:48

Script de benchmark FS et disque
Vous pourriez commenter si vous aviez un compte !