Le 08/10/2014 20:47, Stéphane GARGOLY a écrit :
Bonjour à tous les utilisateurs et développeurs de Debian :
Le mercredi 8 octobre 2014 à 17:03, admini <adm...@freeatome.com> a écrit :
je dois parcourir, de façon resursive, pas mal de millions (25M) de
fichiers pour trouver tous les owners de tous les fichiers.
25 millions de fichiers !! J'ai bien cru halluciner... o_O
ben, c'est de la production quoi.
Travailles-tu sur un - très gros - serveur de fichiers ?
non, je travaille sur des baies SAN en fibre channel. ce sont des baies
Netapp.
j'ai d'abord fait une expérience sur seulement 7Millions, avec
find . -type d > listdir
ca a pris 30minutes
puis
while read i ; do stat -c '%n %U %G' $i/* ;done<listdir > listowner
ca a pris 78 minutes.
J'ai tenté l'expérience mais sur l'ensemble de l'arborescence donc avec la
commande "find / -type d > listdir" puis j'ai passé ta seconde commande.
Je n'ai pas rigoureusement chronométré mais ça m'a pris certainement moins de
5 min pour chacune des deux commandes.
Je ne sais pas quelle est la configuration matérielle de ta machine, mais, pour
ton information, mon ordinateur (de bureau) possède, brièvement, un processeur
dual-core Athlon 64 bits à 3 GHz, une mémoire centrale DDR3 de 8 Go à 800 MHz
et 2 disques durs Western Digital VelociRaptor SATA2 de 1 To à 10'000 tr/min
chacun.
Juste par curiosité, peux-tu nous dire combien pèsent tes deux fichiers listdir
et listowner (qui doivent contenir les informations sur les quelques 7
millions de fichiers) ?
les fichers vont de 1Ko à qqs centaines de Mo. le serveur est virtualisé
sous ESX avec un vCPU et 4Go de RAM. la cadence du vCPU est gérée par la
ferme ESX. les disques sont des disques SAN en raid5. c'est du sata
7200ppm, mais des disques de stockage quoi. on ne peut pas vraiment
faire de comparaison avec des disques dits "grand publique". c'est vrai
que le raid5 n'aide pas pour la perfe.
Chez moi, mon listdir contient prés de 20'000 lignes et pèse prés de 660 ko,
mon listowner approximativement 250'000 lignes et 15 Mo !!
le fichier qui list tous les répertoires fait 175000 lignes. il y a donc
175000 répertoires qui contiennent les 7Millions de fichiers. le fichier
avec tous les fichiers et leur owner fait 700Mo.
y a t-il un autre moyen plus économique vis à vis du stockage et du
système ( CPU mémoire) de faire de telles choses, je vais le tester
demain sur un lot de 7 Millions de fichiers.
Je n'ai pas de réponse(s) toute(s) faite(s) à te proposer - d'autant que mes
connaissances au niveau de la ligne de commande restent bien limitées - mais
as-tu pensé à regarder du coté des commandes 'ls', 'sed' voire 'awk' ?
ben, j'ai peur que ls parcourt effectivement les répertoires, alors que
stat ne lit, me semble -t il que la table d'inodes, ce qui bien moins
stressant pour les IO du système. enfin, je crois ....
Cordialement et à bientôt,
Stéphane.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/543593ae.2030...@freeatome.com