Combien de temps faut-il pour fsck un volume?

9

Nous gérons un site Web qui affiche actuellement 3 à 5 millions de pages vues. Notre site est un site de partage de fichiers et contient donc 250 000 fichiers et quelques milliers de liens symboliques.

Le disque dur est un disque SATA de 1500 Go.

En utilisant, hdparmnous avons appris que la vitesse de notre disque dur a été réduite à 15-20 Mo / s, soit 80 Mo / s.

Alors maintenant, nous voulons exécuter fsckpour résoudre le problème de disque.

  1. Will fsckrésoudra ce problème?
  2. Combien de temps faudra-t-il fsckpour terminer (nous voulons simplement calculer le temps d'arrêt que nous allons avoir)?
khizar ansari
la source
Quel système de fichiers utilisez-vous? S'agit-il d'une matrice RAID ou d'un simple disque SATA?
Kyle Smith
simple disque SATA et système de fichiers est ext3
khizar ansari
11
Pourquoi exécutez-vous un serveur Web de production sur un seul disque? Les serveurs avec des disques simples ne sont pas des serveurs - ils sont des bombes à retardement.
Evan Anderson
3
On dirait que ce disque est en train de mourir. Migrez vos données (vers une véritable matrice RAID avec un contrôleur matériel alimenté par batterie) immédiatement.
Joel E Salas

Réponses:

8

La dégradation de la vitesse est à prévoir à mesure que le nombre de fichiers accédés simultanément augmente. Les disques durs n'aiment pas être accessibles en parallèle: chaque fois que la tête de lecture / écriture doit changer de cylindre, vous perdez plusieurs millisecondes. Même si deux fichiers se trouvent sur le même cylindre, ou même sur la même piste, vous devrez peut-être encore attendre une rotation pour passer de l'un à l'autre. Si vous mesurez les performances du lecteur en mégabits par seconde, attendez-vous à une baisse exponentielle à mesure que l'accès parallèle augmente.

fsck n'aidera pas à cela: il ne répare que les dommages à la structure du répertoire, il n'effectue aucune optimisation.

La solution idéale serait de passer au stockage à semi-conducteurs car cela n'a aucune des limites physiques des plateaux tournants. Mais c'est probablement prohibitif.

Le prochain meilleur serait d'utiliser un RAID optimisé pour l'accès parallèle. Gardez à l'esprit que les RAID peuvent être configurés pour de nombreux profils de performances différents, vous devrez donc prendre un certain temps pour apprendre les paramètres de tout matériel et pilotes RAID donnés.

Vous pourrez peut-être réduire le problème en utilisant une mise en cache agressive du système de fichiers. Si votre système a suffisamment de RAM, Linux devrait déjà le faire assez bien. Exécutez un programme comme toppour voir combien de RAM libre il y a. Mais si les fichiers les plus couramment utilisés ne tiennent pas dans la RAM (ou dans toute RAM que vous êtes susceptible d'acquérir), cela n'aidera pas vraiment.

La solution de contournement pour un pauvre serait de diviser vos fichiers sur plusieurs disques durs physiques différents (et pas seulement sur différentes partitions sur le même lecteur). Ce n'est pas vraiment une solution évolutive à long terme et finirait par vous coûter plus cher qu'un RAID décent. Mais cela pourrait être une solution rapide si vous avez des disques qui traînent.

Pour toute solution impliquant des disques durs, assurez-vous qu'ils ont une vitesse de rotation rapide et une faible latence de recherche.

J'ai écrit un article avec des informations générales sur les performances du disque dur ici:

Conseils UNIX - Systèmes de fichiers

Seth Noble
la source
Je ne vois pas son hdparmindice de référence avoir beaucoup à voir avec "l'accès parallèle". Pour moi, cela ressemble plus à un disque défaillant. C'était plus rapide dans le passé et maintenant ce n'est pas le cas. Probablement parce qu'il s'agit de délocaliser des secteurs.
Evan Anderson
C'est certainement une possibilité, même si je pense qu'une délocalisation à cette échelle produirait des erreurs d'E / S. Sur la base d'une ligne de base très lente de 80 mégabits par seconde, je supposais que le test était exécuté sur un système actif. Alors ... y a-t-il des erreurs d'E / S dans le journal système, comment les hdparmtests ont-ils été effectués et les résultats étaient-ils en "mégabits" ou "mégaoctets" par seconde?
Seth Noble
3

Je m'attendrais à 5 heures pour que le fsck se termine.

Je considérerais plutôt (cela signifie: testing, testing et testing) une migration vers reiserfs.

marcoc
la source
2
  1. Non (fsck peut réparer les métadonnées corrompues du système de fichiers, pas un disque cassé, ni un outil de défragmentation).
  2. Dépend du système de fichiers. Avec ext3, atrocement long, je réserverais plusieurs heures. Des systèmes de fichiers plus modernes tels que ext4 ou xfs peuvent facilement être plus rapides d'un ordre de grandeur.
janneb
la source
1

hdparm effectue une lecture séquentielle. Votre disque de serveur de fichiers devrait faire beaucoup de recherches comme l'ont dit les autres gars.

Si vous obtenez des erreurs HD, elles devraient apparaître quelque part dans votre / var / log /.

Pourquoi n'essayez-vous pas "smartctl -t short / dev / sda" puis "smartctl -t long / dev / sda" ?? ... Avec la plupart des nouveaux disques durs, vous pouvez exécuter cette commande même lorsque vous utilisez le disque dur . Smart vous donnera quelques résultats. Vous pouvez lire la santé de votre disque dur en utilisant "smartctl --all / dev / sda" ..

Si vous envoyez un hdparm vers un disque dur monté avec un accès simultané, cela pourrait être la raison pour laquelle vos résultats sont beaucoup moins qu'auparavant.

Je devrais déplacer vos données vers une configuration RAID dès que possible.

Jose Tavares
la source