Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/10/2010, à 15:37

helly

defragmenter ext4

Bonjour à tous !
Bon déjà oui je sais, l'ext4 se défragmente tout seul à l'usage et tout.
Mais voilà, j'ai sur mon serveur sur partition ext4 qui me sert exclusivement au p2p, et le p2p a franchement tendance à fragmenter.
Cette partition n'est pleine qu'à 40 % et elle est déjà 40 % fragmentée hmm.
Aussi, connaîtriez vous une commande ou un truc pour forcer la défragmentation d'une partition en ext4 ?
(autre que tout copier sur un autre média et re-copier à l'origine, c'est pas très optimal quoi ^^')
Merci beaucoup, bonne journée !


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#2 Le 28/10/2010, à 15:39

rmy

Re : defragmenter ext4

plop, sujet qui m'intéresse.

Hors ligne

#3 Le 28/10/2010, à 15:52

Hoper

Re : defragmenter ext4

A ma connaissance, il n'existe pas vraiment d'outil pour ça.
Et la meilleure chose à faire est effectivement une recopie complète du volume. (Note qu'avec LVM, et à condition que tu ai encore de la place bien sur, ca peut se faire assez facilement et sans rien changer à tout le reste, puisque il suffira après la copie de renommer les LV et de supprimer l'ancien).


Cela dit, quand tu as le problème sur un très gros volume, ca devient effectivement intéressant de vouloir travailler fichier par fichier, et de ne re-copier que ceux qui sont vraiment fragmentés. J'avais fait un petit script pour faire précisément ça... Je ne l'ai pas testé sur ext4, mais je ne vois pas pourquoi il y aurait un soucis.


#!/bin/bash

## Syntaxe

if [ $# -ne 1 -o ! -d "$1" ]
then
    echo " "
    echo " Syntaxe : $0 repertoire"
    echo " ex : $0 /home/toto/documents"
    echo " "
    exit 1
fi

## Creation de la liste des fichiers a traiter

find "$1" -mount -type f -print > /tmp/sdefrag.lst

## Verification de la presence de filefrag

which filefrag >/dev/null
if [ $? -ne 0 ]
then
    echo " "
    echo " Impossible de trouver la commande filefrag !"
    echo " Sur ubuntu cette commande se trouve dans le paquet e2fsprogs..."
    echo " "
    exit 2
fi

FF=`which filefrag`

IFS="
"
for i in `cat /tmp/sdefrag.lst`
do
    RESULT=`$FF "$i" | cut -d ':' -f 2`
    NBREALEXT=`echo $RESULT | awk '{print $1}'`
    NBPERFECTEXT=`echo $RESULT | awk '{print $7}'`
    if [ ! -z "$NBPERFECTEXT" ]
    then
        # Le fichier est fragmente
        if [ "$NBREALEXT" -ge `expr $NBPERFECTEXT \* 10` ]
        then
            echo "$i semble tres fragmente ("$NBREALEXT" extends) "
            cp "$i" "$i"tmp
            rm "$i"
            mv "$i"tmp "$i"
            echo "resultat apres recopie : `$FF "$i" | cut -d ':' -f 2 | awk '{print $1 $2}'` "
            echo " "
        fi
    fi
done

Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#4 Le 28/10/2010, à 16:01

cep

Re : defragmenter ext4

rmy a écrit :

plop, sujet qui m'intéresse.

smile

et tu as utilisé e2freefrag pour vérifier le taux de fragmentation ? 40% me parait beaucoup. 20% à la rigueur.

Hors ligne

#5 Le 28/10/2010, à 16:04

helly

Re : defragmenter ext4

Non, j'ai eu le retour de cette commande via fsck.
Pour ton script je le comprend pas trop mais je te fais confiance :
Il semble qu'il faille le lancer en root, ok.
J'ai donc testé

 sudo defrag /home/helly

Ça mouline 5 minutes, puis

open: No such file or directory

Ça re-mouline 5 minutes, puis ça s'arrête.
Pas de message, rien… sad


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#6 Le 28/10/2010, à 16:15

Hoper

Re : defragmenter ext4

Heu.... Je m'en suis encore servi il y a pas très longtemps...
Tu peux me copier le contenu de /tmp/sdefrag.lst ?
Juste quelques lignes, pour vérifier que déjà ce fichier à été crée correctement.


Mais... c'est quand même super louche... Tu est sur que t'a pas fait d'erreur dans le copier/coller ? yikes)


Sinon, pour information, il n'affiche effectivement rien si il ne trouve aucun fichier vraiment très fragmenté dans le répertoire en question. Ce qui m'étonne c'est l'erreur open file...


Autre truc, pourrait tu copier le résultat de la commande :

sudo filefrag un_fichier

(un fichier contenu dans le répertoire que tu a essayé de dé-fragmenter et pour lequel tu soupçonne une forte fragmentation)

Dernière modification par Hoper (Le 28/10/2010, à 16:33)


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#7 Le 28/10/2010, à 16:43

helly

Re : defragmenter ext4

Bon alors voilà les résultats, je t'ai aussi mis la md5 du fichier script, mais j'ai bien re-vérifié, c'est bien copié.
Le fichier dans tmp existe bien aussi…

helly@Alent:~$ md5sum defrag  && sudo ./defrag /home/helly/ && sudo head /tmp/sdefrag.lst && sudo filefrag defrag 
165c228b13cde8bcebf22ad2cdbcc8df  defrag
open: No such file or directory
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-default-source
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-card-database.tdb
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-stream-volumes.tdb
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-default-sink
/home/helly/.pulse/d5cc65c7c936372b077f74064cb8665a-device-volumes.tdb
/home/helly/.netpanzer/netpanzer-20101018_163623.log
/home/helly/.netpanzer/config/netpanzer.ini
/home/helly/signaler_rmy.png
/home/helly/.glob2/keyboard-gui.txt
/home/helly/.glob2/preferences.txt
defrag: 1 extent found
helly@Alent:~$ 

Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#8 Le 28/10/2010, à 16:43

rmy

Re : defragmenter ext4

cep a écrit :
rmy a écrit :

plop, sujet qui m'intéresse.

smile

Hey, salut cep ! Ça va ?

Je t'avais envoyé un message concernant une proposition de collaboration pour une miniconf à la prochaine UP de mai 2011. Tu l'as perdu dans un /dev/null qui trainait par là ? tongue

Hors ligne

#9 Le 28/10/2010, à 16:43

rmy

Re : defragmenter ext4

helly a écrit :
/home/helly/signaler_rmy.png

lol

Hors ligne

#10 Le 28/10/2010, à 16:47

helly

Re : defragmenter ext4

tongue.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#11 Le 28/10/2010, à 16:58

cep

Re : defragmenter ext4

rmy a écrit :
cep a écrit :
rmy a écrit :

plop, sujet qui m'intéresse.

smile

Hey, salut cep ! Ça va ?

Je t'avais envoyé un message concernant une proposition de collaboration pour une miniconf à la prochaine UP de mai 2011. Tu l'as perdu dans un /dev/null qui trainait par là ? tongue

aie ! je te mail en privé. En effet, égaré au retour smile

Hors ligne

#12 Le 28/10/2010, à 17:38

helly

Re : defragmenter ext4

Hey, c'est pas meetic ici tongue.


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#13 Le 28/10/2010, à 17:40

Hoper

Re : defragmenter ext4

Polom polom....

A mon avis le script fonctionne correctement.
Simplement je ne l'ai encore jamais lancé dans /home... Or il y a des trucs bien chelou la dedans, genre le .gvfs et compagnie.

Pour le reste, je pense qu'il ne trouve aucun fichier qu'il considère comme très fragmenté (10 fois plus d'extend que prévus).

Relance la commande filefrag, mais cette fois ci sur un GROS fichier, et un que tu crois être fragmenté donc. (parce que le script, tu viens de le créer, et surtout il prend que dalle comme place... bref, lui ne pouvais pas être fragmenté).


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#14 Le 28/10/2010, à 17:47

helly

Re : defragmenter ext4

Alors un filefrag sur une iso !

helly@Coptere:/mnt/Torrents/En_cours$ filefrag Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso
Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso: 372 extents found

372, c'est assez ?

Dernière modification par helly (Le 28/10/2010, à 17:49)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#15 Le 28/10/2010, à 17:50

helly

Re : defragmenter ext4

ET je viens de lancer le script sur la partition fragmentée, il est pas beaucoup plus bavard :

helly@Coptere:~$ sudo ./defrag /mnt/Torrents/
helly@Coptere:~$ 

Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#16 Le 28/10/2010, à 17:56

Hoper

Re : defragmenter ext4

helly@Coptere:/mnt/Torrents/En_cours$ filefrag Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso
Partages_logiciels/LinuxMint/linuxmint-9-gnome-cd-i386.iso: 372 extents found

C'est bien ce que je disais, ton fichier n'est pas fragmenté. C'est même très impressionnant pour un fichier de cette taille. Si il avait été fragmenté, la sortie de la commande aurait été bien différente. Voila un exemple :


hoper@gemeaux:~/scripts$ sudo filefrag /data/pub/isos/Autres\ CD/debian-40r1-i386-DVD-1.iso
/data/pub/isos/Autres CD/debian-40r1-i386-DVD-1.iso: 39 extents found, perfection would be 35 extents
hoper@gemeaux:~/scripts$

Et encore, la il s'agit d'un fichier très, très peu fragmenté. J'ai eu des tas de cas avec des fichiers qui au lieu de prendre 200 extends par exemple, en utilisaient... trois cent milles ! Raison pour laquelle mon script ne réagit qu'aux fichiers avec un nombre d'extend supérieur à 10 fois ce qu'il devrait être.


Je reste donc sur mes positions, les fichiers présents dans ton répertoire ne sont pas fragmentés, ou vraiment très peu.


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#17 Le 28/10/2010, à 18:00

helly

Re : defragmenter ext4

Ha ?
Mais dans ce cas :

helly@Coptere:~$ sudo fsck -f /dev/mapper/mvg-Torrents 
…
/dev/mapper/mvg-Torrents : 2189/58064896 fichiers (32.8% non contigus)

Et y'a rien de mieux à faire ? hmm


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#18 Le 28/10/2010, à 18:04

Hoper

Re : defragmenter ext4

Heu... enlève moi un doute la...
/dev/mapper/mvg-Torrents correspond à /home !?


Tu peux me copie la sortie de : df -h | grep mvg-Torrents


Mon script prend bien soin de ne pas traverser les fs, parce que sinon... houla... bonjour le bordel smile


Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#19 Le 28/10/2010, à 18:06

helly

Re : defragmenter ext4

Non non c'est pas mon /home, c'est la partition torrent qui pose problème justement !
Il faut donc que je lance ce script à même la partition ?

Dernière modification par helly (Le 28/10/2010, à 18:08)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#20 Le 28/10/2010, à 18:33

cep

Re : defragmenter ext4

lancer e2freefrag sur le fs pour savoir s'il est fragmenté.
man e2freefrag

Hors ligne

#21 Le 28/10/2010, à 18:36

helly

Re : defragmenter ext4

Hop !

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :           169           169    0.00%
    8K...   16K-  :           298           771    0.00%
   16K...   32K-  :           352          1903    0.00%
   32K...   64K-  :           373          4058    0.00%
   64K...  128K-  :           290          6287    0.00%
  128K...  256K-  :           408         20116    0.01%
  256K...  512K-  :           485         43209    0.02%
  512K... 1024K-  :           638        113184    0.06%
    1M...    2M-  :           792        283740    0.16%
    2M...    4M-  :           844        610794    0.35%
    4M...    8M-  :           897       1348577    0.76%
    8M...   16M-  :            55        143973    0.08%
   16M...   32M-  :             5         29054    0.02%
   32M...   64M-  :             5         48922    0.03%
   64M...  128M-  :           102       2462339    1.40%
  256M...  512M-  :             1        112608    0.06%
  512M... 1024M-  :             2        318431    0.18%
    1G...    2G-  :           332     170705509   96.81%

Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#22 Le 28/10/2010, à 19:12

Hoper

Re : defragmenter ext4

Il faut donc que je lance ce script à même la partition ?

Pas forcément à l'intérieur non, mais au moins "dessu". Donc, d'après ce que je lis, il faudrait mettre en argument : /mnt/Torrents
et pas ce que tu as tapé, à savoir :

sudo defrag /home/helly

Si le contenu à defragemnter est dans /mnt/Torrents, alors tu aurai du taper :

sudo defrag /mnt/Torrents

Mes tutos et coups de gueule :
http://hoper.dnsalias.net/atdc/
Mastodon: @hoper@framapiaf.org

Hors ligne

#23 Le 28/10/2010, à 19:17

cep

Re : defragmenter ext4

tu n'as pas reporté le % de Free blocks. Mais d'après ce que je vois des possibilités tu ne devrais pas avoir de problèmes de fichiers fragmentés. fsck te dit que le fs est fragmenté ?

Hors ligne

#24 Le 28/10/2010, à 19:49

helly

Re : defragmenter ext4

fsck me dit juste qu'il y a les 32% non contingus, ça veut bien dire que c'est fragmenté non tongue ?
@Hoper : yep, c'est ce que j'ai fait…


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#25 Le 28/10/2010, à 20:18

cep

Re : defragmenter ext4

comme tu as vu la sortie de e2freefrag l'état du fs dans sa globalité ne génèrera pas de fragmentation.
Donc la solution proposée par Hoper qui travaille sur les fichiers va te dire exactement ce qu'il en est des fichiers eux-même.

Je ne sais pas comment travaille le programme de torrent mais si les fichiers sont très fragmentés il en est peut-être responsable. En tenant compte des indications de sortie du programme de Hoper tente un déplacement de certains fichiers pour voir si le problème se règle ou si certaines parties sont dans un état incohérent qui pourrait expliquer la fragmentation.

Hors ligne