La Fibre
Télécom => Logiciels et systèmes d'exploitation => Linux => Discussion démarrée par: vivien le 24 janvier 2014 à 18:31:09
-
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)
-
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)
Utilise find :
find /home/testdebit.info/fichiers/montant/ -delete
-
Ok donc effectivement pas d'incidents côté système de fichiers ;D Merci pour ton partage en touts cas, l'ajout de la ligne dans /etc/rc.local est malin pour que le système de fichiers remonte au démarrage ! C'est le genre de post qui m'intéresse beaucoup :)
-
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)
Pas tout à fait, tmpfs est un système de fichiers temporaire dont le contenu peut aller dans le swap. Mais quand tu as beaucoup de RAM, les données peuvent rester éternellement dans le cache de fichiers (et le cache d'inodes, et le cache de dentries); à ne surtout pas confondre avec ramfs!
-
Ramfs a pour défaut de ne pas limiter la taille mémoire allouable, et donc de pouvoir mettre à genou le système dans le cadre d'une utilisation ou les clients peuvent uploader les fichiers...
-
ramfs est un système de fichiers pathologique : ramfs est juste incapable d'écrire ses fichiers sur la mémoire de masse!
ramfs est un non-fs : ramfs n'est capable d'aucune opération en fait. ramfs laisse les données dans les caches (cache mémoire, cache d'inodes, de dentries).
ramfs est presque une blague. C'est de l'humour "wc".
-
T'as des sources ?
tmpfs est-il un meilleur choix ?
C'est vrai que ce dernier est fréquent (contrairement à ramfs qui semble disparu de la circulation), j'aimerais des infos précises sur les inconvénients du premier
-
J'ai LES sources.
LOL
-
Touché ;D ;D
-
T'as des sources ?
tmpfs est-il un meilleur choix ?
ramfs
C file file-mmu.c 1537 bytes
C file file-nommu.c 6792 bytes
C file inode.c 6573 bytes
C file internal.h 536 bytes
http://lxr.free-electrons.com/source/fs/ramfs/ (http://lxr.free-electrons.com/source/fs/ramfs/)
ext2
C file acl.c 9609 bytes
C file acl.h 1499 bytes
C file balloc.c 45517 bytes
C file dir.c 18119 bytes
C file ext2.h 28131 bytes
C file file.c 2829 bytes
C file ialloc.c 18690 bytes
C file inode.c 45910 bytes
C file ioctl.c 4487 bytes
C file namei.c 10188 bytes
C file super.c 43041 bytes
C file symlink.c 1344 bytes
C file xattr.c 28611 bytes
C file xattr.h 3520 bytes
C file xattr_security.c 1921 bytes
C file xattr_trusted.c 1419 bytes
C file xattr_user.c 1571 bytes
C file xip.c 2071 bytes
C file xip.h 759 bytes
On voit bien que l'implèmentation de ramfs est de taille complètement ridicule pour un fs.