Pour les tests de débit, les fichiers sont sur un ramdisque => tout est en RAM.
Pour créer le ramdisque, j'ai rajouté une ligne dans /etc/rc.local (avant le exit 0) :
/home/scripts/disque_tmpfs.sh
Le script en question :
#!/bin/dash
mount -t tmpfs -o size=7g tmpfs /home/testdebit.info/fichiers
mkdir /home/testdebit.info/fichiers/montant
chmod 777 /home/testdebit.info/fichiers/montant
cp /home/scripts/disque_tmpfs_source/* /home/testdebit.info/fichiers
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-1.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-2.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-3.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-4.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-5.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-6.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-7.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-8.dat
ln /home/testdebit.info/fichiers/1000Mo.dat /home/testdebit.info/fichiers/1000Mo-9.dat
mount -t tmpfs -o size=7g tmpfs /home/testdebit.info/fichiers crée un ramdisque d'une taille maximum de 7 Go (le serveur a 16 Go de ram)
/home/testdebit.info/fichiers/montant c'est le dossier ouvert en écriture en FTP anonyme
Je copie ensuite tous les fichiers dans le ramdisque.
Il y a un seul fichier de 1Go, les autres sont des liens physique du 1er, ce qui permet de ne prendre que 1 Go de ram pour 10 fichiers de 1 Go.
Pour que le dossier où il est possible d'uplopad ne devienne pas MegaUpload et aussi car les fichiers sont en RAM et que je suis fortement limité, je supprime les fichiers uploadés toutes les 15 secondes. Ce n'est pas gênant de faire un rm * alors que un fichier en cours d'upload, il ne sera pas visible une fois uploadé mais cela ne coupe pas l'upload et pas d'erreur sur le client FTP. La crontab de root :
# Effacer les fichiers non cachés chaque 15 sec et cachés chaque minute
* * * * * /bin/rm -rf /home/testdebit.info/fichiers/montant/*
* * * * * /bin/sleep 15 ; /bin/rm -rf /home/testdebit.info/fichiers/montant/*
* * * * * /bin/sleep 30 ; /bin/rm -rf /home/testdebit.info/fichiers/montant/*
* * * * * /bin/sleep 45 ; /bin/rm -rf /home/testdebit.info/fichiers/montant/* /home/testdebit.info/fichiers/montant/.*
Je n'ai pas trouvé le moyen de supprimer les fichiers cachés (qui commencent par un .) et les fichiers non cachés (qui commencent par autre chose qu'un point) sans faire l'un et l'autre (je ne supprime les fichiers cachés que toutes les minutes car il faut être vicieux pour uploader des fichiers cachés)