Environ deux fois par semaine, l'interface graphique entière se verrouille pendant environ 10-20 secondes sans avertissement pendant que je fais des tâches simples telles que la navigation sur le Web ou la rédaction d'un document. Lorsque cela se produit, les éléments de l'interface graphique ne répondent pas aux entrées de la souris ou du clavier et l'applet System Monitor affiche 100% d'utilisation du processeur IOWait.
Aujourd'hui, il m'est finalement arrivé d'avoir GNOME Terminal déjà ouvert lorsque le problème a commencé. Malgré que d'autres applications telles que Google Chrome, Firefox, GNOME Do et GNOME Panel ne répondent pas, le terminal était utilisable. J'ai couru iotop
et observé que les commandes nommées [flush-8:16]
et [jbd2/sdb2-8]
utilisaient alternativement 99,99% d'E / S.
Que sont-ils et comment puis-je les empêcher de ne pas répondre à l'interface graphique?
Détails
$ mount | grep ^/dev
/dev/sda1 on / type ext4 (rw,noatime,discard,errors=remount-ro,commit=0)
/dev/sdb2 on /home type ext4 (rw,commit=0)
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sdb3 partition 1052252 0 -1
/dev/sda
est un OCZ-VERTEX2 et /dev/sdb
un WD10EARS . Voici dumpe2fs /dev/sdb2
et smartctl /dev/sdb --all
.
Je ne vois rien d'inhabituel dans dmesg
ou /var/log/syslog
.
la source
flush
écrit le tampon / cache RAM sur le disque, et jbd2 s'occupe du journal ext4./dev/sda
aussi - quel disque contient quoi? Comme "root sur sda, home sur sdb"?dmesg
pour des erreurs de disque.Réponses:
Je vais tenter une théorie:
/dev/sdb1
est peut-être l'espace d'échange?Si un élément central de l'interface graphique a été déchargé sur le disque, l'interface graphique ne peut pas continuer tant qu'elle n'a pas reçu ces données. Si le disque d'échange est en veille, cela signifie qu'il est bloqué jusqu'à ce que le disque réponde.
Je pense que cela donnerait un blocage temporaire, et la période de 10 à 20 secondes correspond au temps nécessaire pour qu'un disque en veille réponde. Le terminal est probablement encore réactif car tout ce dont il a besoin est déjà en RAM.
Quelques outils terminaux pour explorer la théorie:
hdparm -C /dev/sdX
vous indique si un disque est en veille:active/idle
signifie qu'il fonctionne. En étatstandby
ousleeping
il a cessé de tourner et prendra un certain temps pour redémarrer. Tu voisman hdparm
.free -m
indique combien d'espace de swap est utilisé:"Swap:" est la ligne appropriée, dans cet exemple, un échange de 6,2 Go est disponible et rien n'est utilisé.
Si tel est le problème, vous pouvez déplacer le swap vers sda ou désactiver les spindowns pour sdb.
la source
free -m
pendant le verrouillage a confirmé que 0 Mo de swap était utilisé.