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
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
##################################################
# 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