Aproximadamente dos veces por semana, toda la interfaz gráfica se bloqueará durante aproximadamente 10-20 segundos sin previo aviso mientras realizo tareas simples como navegar por la web o escribir un documento. Cuando esto sucede, los elementos de la GUI no responden a la entrada del mouse o del teclado, y el applet System Monitor muestra el uso del procesador 100% IOWait.
Hoy, finalmente tuve el Terminal de GNOME ya abierto cuando comenzó el problema. A pesar de que otras aplicaciones como Google Chrome, Firefox, GNOME Do y GNOME Panel no respondían, el terminal era utilizable. Corrí iotop
y observé que los comandos nombraban [flush-8:16]
y [jbd2/sdb2-8]
usaban alternativamente 99.99% IO.
¿Qué son estos y cómo puedo evitar que causen falta de respuesta de la GUI?
Detalles
$ 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
es un OCZ-VERTEX2 y /dev/sdb
es un WD10EARS . Aquí está dumpe2fs /dev/sdb2
y smartctl /dev/sdb --all
.
No veo nada inusual en dmesg
o /var/log/syslog
.
fuente
flush
escribe el búfer / caché de RAM en el disco, y jbd2 se ocupa del diario ext4./dev/sda
, ¿qué disco contiene qué? ¿Como "root en sda, home on sdb"?dmesg
errores de disco.Respuestas:
Voy a aventurar una teoría:
/dev/sdb1
¿es acaso espacio de intercambio?Si algo central de la interfaz gráfica se ha descargado al disco, la GUI no puede continuar hasta que haya recibido esos datos. Si el disco de intercambio está inactivo, esto significa que está atascado hasta que el disco responda.
Creo que esto daría un bloqueo temporal, y el período de 10-20 segundos se ajusta al tiempo que tarda un disco inactivo en responder. Presumiblemente, el terminal todavía responde porque todo lo que necesita ya está en la RAM.
Algunas herramientas terminales para explorar la teoría:
hdparm -C /dev/sdX
le dice si un disco está durmiendo:active/idle
significa que se está ejecutando. En estadostandby
osleeping
ha dejado de girar y tardará un tiempo en iniciarse nuevamente. Verman hdparm
.free -m
dice cuánto espacio de intercambio se usa:"Swap:" es la línea relevante, en este ejemplo, el intercambio de 6.2 GB está disponible y no se utiliza nada.
Si este es el problema, puede mover swap a sda o deshabilitar spindowns para sdb.
fuente
free -m
durante el bloqueo confirmó que se estaban utilizando 0 MB de intercambio.