[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: problème de charge disque



Bonjour Gaëtan,

Bon je ne suis vraiment pas un expert dans ce domaine mais bon, je tente
des remarques quand même. C'est le genre de problème pas facile à résoudre.

Déjà pour être sûr que c'est bien au niveau des I/O disque que ça coince,
vérifie quand même les « I/O wait » de ton CPU (les moments où le CPU est
forcé d'être oisif car il doit attendre que les I/O se terminent) durant
une période d'activité et de lenteur de ton système. Tu peux le voir par
exemple avec la commande top au niveau du champ « wa » de l'activité CPU.
Parce que si, au moment où tu utilises gedit, tu constates des lenteurs
et une activité à 100% d'un disque mais que par ailleurs ton CPU n'a pas
d'I/O wait alors c'est que ce n'est pas au niveau du disque que ça coince
Ce que je veux dire c'est que c'est pas forcément parce que le disque est
utilisé à 100% que c'est lui qui ralentit le système (bon certes c'est peu
probable, je te l'accorde).

Ensuite, si c'est bien une lenteur au niveau des disques, alors pour cibler
un peu plus le coupable tu peux utiliser la commande suivante lors d'une
période de lenteurs :

    # Tu indiques tous tes disques, j'ai cru comprendre que tu en avais 2.
    # Le « 2 » en argument ci-dessous signifie un rafraîchissement de l'affichage
    # toutes les 2 secondes.
    # (je ne sais plus dans quel paquet se trouve cette commande, désolé)
    iostat -t -x -m -p /dev/sda,/dev/sdb 2

Tu regardes la partition pour laquelle la colonne « await » est la plus
élevée. Je pense que tu l'as déjà fait, mais vérifie bien avec iotop par
exemple qu'il n'y pas un process en train de bourriner des I/O à ton
insu.

Enfin tu peux tester le débit en écriture sur tes disques avec par exemple :

    # Ici ça écrit 100 fois un 1 Méga en utilisant le cache du filesystem (et
    # donc la RAM), ce qui correspond au cas réel par défaut.
    dd if=/dev/zero of=/destination/foo bs=1M count=1OO

    # La même chose mais sans passer par le cache du filesystem afin
    # de voir vraiment le débit en écriture du disque.
    dd if=/dev/zero of=/destination/foo bs=1M count=1OO oflag=direct

À faire avec comme destination un fichier se trouvant dans la partition
suspecte. En vérité dd ne correspond pas vraiment à une écriture « classique »
car c'est une écriture séquentiel ce qui n'est en général pas le cas dans la
vraie vie mais bon, c'est déjà un test rapide à faire.

Un truc que je tenterais aussi, c'est de « stracer » une petite commande
(typiquement pas Virtualbox) qui provoque les ralentissements que tu constates.
Par exemple avec gedit si j'ai bien suivi :

    strace -t -f gedit ... 2> /tmp/log.txt

Avec -t, tu auras la date (à la seconde près) en face de chaque ligne ce
qui te permettra de voir les lignes correspondant à la période de lenteur.
Bon, la sortie de strace c'est pas jojo à regarder mais parfois ça peut
aider à cibler le problème.

-- 
François Lafont


Reply to: