Réponses:
Les systèmes de fichiers modernes, en particulier ceux conçus pour être efficaces dans des cas d'utilisation multi-utilisateurs et / ou multitâches, font un bon travail de ne pas fragmenter les données jusqu'à ce que les systèmes de fichiers deviennent presque saturés (il n'y a pas de chiffre exact pour savoir où le "presque saturé" "la marque dépend de la taille du système de fichiers, de la distribution des tailles de fichiers et de vos modèles d'accès - les chiffres entre 85% et 95% sont souvent cités) ou le modèle des créations et écritures de fichiers est inhabituel ou le système de fichiers est très vieux donc a vu beaucoup "d'action". Cela inclut ext2 / 3/4, reiser, btrfs, NTFS, ZFS et autres.
Il n'y a actuellement aucun moyen au niveau du noyau / système de fichiers pour défragmenter ext3 ou 4 pour le moment (voir http://en.wikipedia.org/wiki/Ext3#Defragmentation pour un peu plus d'informations) bien qu'ext4 devrait bientôt être mis en ligne défragmentation.
Il existe des outils utilisateur-terre (tels que http://vleu.net/shake/et d'autres répertoriés dans cet article de wikipedia) qui essaient de défragmenter des fichiers individuels ou des ensembles de fichiers en les copiant / réécrivant - s'il y a un bloc suffisamment grand d'espace libre, cela donne généralement au fichier un bloc contigu. Cela ne garantit en aucun cas que les fichiers sont proches l'un de l'autre, donc si vous exécutez shake sur une paire de fichiers volumineux que vous migrez, les deux fichiers sont eux-mêmes défragmentés mais pas n'importe où l'un sur l'autre sur le disque. Dans un système de fichiers multi-utilisateurs, la localisation des fichiers les uns par rapport aux autres n'est pas souvent importante (elle est certainement moins importante que la fragmentation des fichiers eux-mêmes) car les têtes de disques retournent partout pour servir différents utilisateurs ''
Si vous avez un système de fichiers qui s'est gravement fragmenté au fil du temps et qui dispose actuellement d'une bonne quantité d'espace libre, l'exécution de quelque chose comme shake
tous ses fichiers pourrait avoir l'effet que vous recherchez. Une autre méthode consiste à copier toutes les données vers un nouveau système de fichiers, à supprimer l'original, puis à le recopier. Cela aide de la même manière shake
mais peut être plus rapide pour de plus grandes quantités de données.
Pour de petites quantités de fragmentation, ne vous inquiétez pas. Je connais des gens qui passent plus de temps assis à regarder les barres de progression de la défragmentation qu'ils n'en économiseront jamais (en raison d'un accès au disque plus efficace) pendant plusieurs durées de fonctionnement normal!
ureadahead
, comme le font les versions récentes d'Ubuntu par défaut (voir ubuntuforums.org/showthread.php?t=1434502 pour plus d'informations), pour obtenir un effet similaire. Une partie du retard dans la séquence de démarrage de Linux peut être réduite en lui demandant de démarrer les services plus simultanément si possible si la configuration de démarrage de votre disro prend en charge cela (définissez CONCURRENCY = shell dans / etc / defaults / rc sur Debian) et des ajustements similaires. Pour vérifier que vous faites une différence avec les modifications que vous apportez, utilisez bootchart.org pour montrer ce qui se passe avant de modifier les choses par rapport à après.
e2defrag
et l' ai expérimenté pour réaliser un tel emballage. Vous pouvez le trouver sur launchpad.net/e2defrag .
/etc/defaults/rc
mais j'ai /etc/default/rcS
sur debian 6
e2defrag
désormais mieux en charge Ext3, mieux que shake
?