Je cours du -sh
dans une variété de répertoires pour trouver des porcs de disque. J'ai obtenu deux serveurs identiques (Dell PE2850s), tous deux avec RHEL5 et cela prendra beaucoup plus de temps pour fonctionner du
sur un serveur sur l'autre.
Par exemple, faire du -sh /opt/foobar
prendra 5 minutes sur le serveur A (qui contient environ 25 Go) et sur le serveur B, la même commande avec la même quantité de données me sera rapportée presque instantanément. Je ne vois rien d'évident de façon flagrante en courant dessus, etc.
Tout conseil est grandement appréciée.
du -s
ne dépend pas de la taille des données mais plutôt du nombre de fichiers. Les deux arborescences de répertoires ont-elles un nombre similaire de fichiers?du
fonctionnera beaucoup plus rapidement si toutes les métadonnées du répertoire (comme les tailles de fichier) sont actuellement mises en cache. Si tel est le cas pour une raison quelconque sur un serveur et non sur l'autre, cela entraînera de grandes différences.Réponses:
Si vous avez un grand nombre de fichiers dans ce répertoire et que le contenu du répertoire change constamment, l'entrée de répertoire elle-même se fragmente au fil du temps. Ensuite, lorsque le système d'exploitation lit le contenu du répertoire, il y aura beaucoup, beaucoup de recherches de disque inutiles. Cela se produit en particulier avec les systèmes de fichiers ext * (ext4 pourrait être mieux cependant) et les anciens systèmes de fichiers ReiserFS v3.x (si ceux-ci ont atteint 85% ou plus).
La solution est assez simple:
Bien sûr, si tout est mis en cache dans la RAM, cela n'a pas beaucoup d'importance; Linux met généralement en cache les fichiers et les répertoires fréquemment utilisés de manière assez agressive. Si vous voulez vraiment garder le contenu de ces répertoires en RAM, vous pouvez mettre quelque chose comme
ls -lah /your/dir 2>&1 >/dev/null
dans votre cron.EDIT: Oh, une chose m'est venue à l'esprit. Si votre serveur possède un contrôleur RAID sauvegardé par batterie avec un peu de cache, veuillez vérifier que la batterie est OK. J'ai vu des situations où la batterie est morte et le contrôleur désactive complètement le cache, ruinant ainsi les performances. Par exemple, les serveurs HP peuvent indiquer dans les journaux iLO quelque chose sur la batterie du contrôleur; dans le tableau de bord de santé du serveur, tout semble bien et vert, mais seule l'entrée de journal vous en informera.
la source
umount
le lecteur etfsck
lui?ionice -c3 -p $(pidof cp)
ou ainsi.Je suggère d'essayer la commande simple sans aucun commutateur. Vous verrez finalement quel répertoire ralentit le processus. Peut-être un disque défectueux, ou une autre raison, ...
la source