Las operaciones de disco congelan Debian

12

Acabo de instalar las pruebas de Debian en mi nuevo escritorio y no estoy muy contento con el rendimiento: cuando realizo una operación intensiva de disco, por ejemplo, actualizar paquetes en el sistema, todo parece congelarse, por ejemplo, cambiar pestañas en Iceweasel toma 3 segundos. Ejecuto Debian en mi Thinkpad X60 ultraportátil de 3 años, y no tengo estos problemas. (cada parámetro de la computadora portátil es mucho peor que el de escritorio).

Estoy usando el núcleo y los scripts empaquetados predeterminados.

Corro

hdparm -t /dev/sda1

Y obtuve alrededor de 96GB / s, lo que se espera. ¿Qué más puedo intentar para que funcione mejor?

EDITAR :

grzes:/home/ga# hdparm -i /dev/sda

/dev/sda:

 Model=WDC WD15EARS-00Z5B1, FwRev=80.00A80, SerialNo=WD-WMAVU1362357
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7

 * signifies the current active mode

EDIT2 : Incluso mi esposa dijo "en esta nueva computadora no puedo hacer nada cuando copio las fotos de la cámara y es mucho peor que en la anterior". Entonces debe ser serio.

EDITAR3 : actualizado a 2.6.32, pero aún no mejora

EDIT4 : Olvidé mencionar que el nuevo disco es ext4, el anterior era ext3.

EDIT5 : aún no resuelto. Tengo una placa P43 ASUS P5QL-E. Líneas de dmesg que parecen relevantes:

[    0.370850] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)                              
[    0.370852] io scheduler noop registered                                                                      
[    0.370853] io scheduler anticipatory registered                                                              
[    0.370854] io scheduler deadline registered                                                                  
[    0.370876] io scheduler cfq registered (default)
...
[    0.908233] ata_piix 0000:00:1f.2: version 2.13                                                               
[    0.908243] ata_piix 0000:00:1f.2: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.908246] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]                                                        
[    0.908275] ata_piix 0000:00:1f.2: setting latency timer to 64                                                
[    0.908316] scsi0 : ata_piix                                                                                  
[    0.908374] scsi1 : ata_piix                                                                                  
[    0.909180] ata1: SATA max UDMA/133 cmd 0xa000 ctl 0x9c00 bmdma 0x9480 irq 19                                 
[    0.909183] ata2: SATA max UDMA/133 cmd 0x9880 ctl 0x9800 bmdma 0x9488 irq 19                                 
[    0.909199] ata_piix 0000:00:1f.5: PCI INT B -> GSI 19 (level, low) -> IRQ 19                                 
[    0.909202] ata_piix 0000:00:1f.5: MAP [ P0 -- P1 -- ]                                                        
[    0.909228] ata_piix 0000:00:1f.5: setting latency timer to 64                                                
[    0.909279] scsi2 : ata_piix                                                                                  
[    0.909326] scsi3 : ata_piix                                                                                  
[    0.910021] ata3: SATA max UDMA/133 cmd 0xb000 ctl 0xac00 bmdma 0xa480 irq 19                       
Grzenio
fuente
1
También tengo el mismo problema. Yo uso ubuntu 9.10 de 64 bits.
Abhijeet Rastogi
1
alguna actualización de esto? ¿Aún tienes el problema? Si es así, ¿puede decirnos qué chipset está usando la placa base? ¿Hay algo interesante con dmesgrespecto al chipset o unidad? Si lo solucionó de alguna manera, considere publicar un escrito como respuesta para informar a los futuros lectores.
quack quijote
@ ~ quack, aún no resuelto, consulte editar.
Grzenio

Respuestas:

4

Verifique el desplazamiento de la partición: debe ser divisible por 4 para EARS, ya que tienen la tecnología 4096. Si no es así, particípelo para obtener problemas de alineación y rendimiento que deberían desaparecer (las unidades EARS desalineadas harán muchas más escrituras de sector por operación).

Rachel
fuente
ooOOOOooo. podrías estar haciendo algo. La salida de dmesg indica que podría estar detectando la unidad como una unidad de sector de 512 bytes: "[sda] 2930277168 Bloques lógicos de 512 bytes" ... ¿hay un "puente XP" en la unidad que establezca algún tipo de modo de compatibilidad? hay ... vea el puente "Formato avanzado" aquí: wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/… .. que probablemente le dice al sistema operativo que tiene sectores de 512 bytes, asegúrese de que no conjunto.
quack quijote
gracias por tu respuesta ¿Podría decirme cómo verifico el desplazamiento? ¿Puedo mover la partición o tengo que volver a crearla?
Grzenio
¿Hay alguna manera de verificar el desplazamiento en la partición? ¿Un comando que podría ejecutarse?
Warren P
Puede usar gdisk para verificar las compensaciones de partición - rodsbooks.com/gdisk
James Sumners
4

Tuve un problema de congelación similar al hacer muchas E / S de disco. Durante una copia de seguridad, el escritorio se congeló durante unos segundos una y otra vez hasta que finalizó.

No estaba relacionado con ninguna alineación ni ningún ajuste de hdparm (aunque estoy de acuerdo en que ayudará).

El bloqueo del sistema fue causado por el planificador de IO que retrasa demasiado algunas IO requeridas por aplicaciones más interactivas (Firefox, KDE o lo que sea). El planificador de IO defectuoso fue cfg .

Para resolver el problema, debe usar el planificador de IO de fecha límite. Lo activa en un disco con el siguiente comando que puede agregar en /etc/rc.local :

echo deadline >  /sys/block/sda/queue/scheduler

Marque Solucionar el bloqueo del sistema Linux cuando se realizan E / S de disco intensivas para obtener más información.

ciceron
fuente
2

Es un tiro en la oscuridad, pero he tenido un problema como este hace un tiempo, y la causa resultó ser que el núcleo no soportaba completamente el conjunto de chips y DMA estaba apagado. Comprobar con

hdparm -i /dev/sda

si uno de los modos DMA está habilitado.

(La solución en ese caso era obtener un kernel más nuevo).

Peter Eisentraut
fuente
SALIDA: - Modos DMA: mdma0 mdma1 mdma2 Modos UDMA: udma0 udma1 udma2 udma3 udma4 udma5 * udma6 entonces, ¿cuál es el problema?
Abhijeet Rastogi
Tengo: Model=WDC, FwRev=80.00A80, SerialNo=WD-WMAVU1362357 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50 BuffType=unknown, BuffSize=0kB, MaxMultSect=16, MultSect=16 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=2930277168 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 AdvancedPM=no WriteCache=enabled Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
Grzenio
Ningún modo dma parece tener una estrella (es relevante). ¿Importa? ¿Cómo puedo configurarlo?
Grzenio
Además, no estoy seguro de si no es relevante solo para dispositivos IDE, porque obtengo: hdparm -d / dev / sda / dev / sda: HDIO_GET_DMA falló: ioctl inapropiado para dispositivo
Grzenio
@Grzenio: el modo udma6 parece tener una estrella, ¿es incorrecto? es posible que desee editar esta información en su publicación para que pueda formatearla.
quack quijote
2

Me he encontrado con problemas donde las operaciones que realizan muchas llamadas fsync (2) causarán una desaceleración importante del sistema. En mi caso, estoy ejecutando con mi partición raíz contenida en LVM contenida en LUKS. ¿Estás utilizando LVM o LUKS?

Se llama una herramienta que puede ayudar a determinar qué está masticando específicamente sus discos (en lugar de simplemente "instalar paquetes") iotop. Sugiero ejecutarlo mientras realiza una de estas tareas, y puede señalar algún otro proceso en segundo plano que puede desencadenarse al mismo tiempo y absorber todo su rendimiento de E / S.

pioto
fuente
Hola, perdón por una respuesta tardía: iotop dice que [jbd2 / sda3-8] usa 80% -99% IO, pero la lectura, escritura y intercambio del disco son 0.0 al mismo tiempo. ¿Algunas ideas?
Grzenio
En general, la comprobación de fsync excesiva es un buen punto para comprobar. Sin embargo, en este caso, el mismo software funciona mucho mejor en otro hardware (el antiguo T60), por lo que parece más un problema con esta combinación particular de hardware y controlador. Aún así, es bueno tener esto en cuenta.
sleske
2

sudo fdisk -u / dev / sda

Eso debería darte el desplazamiento inicial. `` Creo '' que puede crear la partición usando fdisk -o 64 o algo así; tendría que buscarlo en Google, así que le dejaré buscar en fdisk y configurar manualmente el desplazamiento de la partición (el valor predeterminado es 63, por lo que no es bueno).

y sí, el disco se mostrará con sectores de 512b como pretende ser como tal para el sistema operativo: Vista / W7 maneja esto configurando el desplazamiento correcto, pero XP y creo que casi todas las distribuciones de linus no :( manualmente es la única forma en que parece (el mío es solo una unidad de almacenamiento y creado en win7 / ntfs, así que no es un problema para mí)

Editar: - Encontré una buena publicación en wdc - esto debería tenerlo funcionando en muy poco tiempo :)

http://community.wdc.com/t5/Desktop/Problem-with-WD-Advanced-Format-drive-in-LINUX-WD15EARS/mp/10920#M631


fuente
Hola, obtuve: grzes: / home / ga # fdisk -u / dev / sda El número de cilindros para este disco está configurado en 182401. No hay nada de malo en eso, pero esto es más grande que 1024, y podría en ciertas configuraciones causar problemas con: 1) software que se ejecuta en el momento del arranque (por ejemplo, versiones anteriores de LILO) 2) software de arranque y partición de otros sistemas operativos (por ejemplo, DOS FDISK, OS / 2 FDISK) Comando (m para ayuda):
Grzenio
Finalmente logré hacerlo, pero realmente no ayudó :( El verdadero problema debe estar en otro lugar.
Grzenio
1

Solo una toma aleatoria, lo que parece estúpido dado que usa Debian ... pero descubrí que ayudó a alguien con el mismo modelo de disco duro: ¿ha intentado actualizar su BIOS?

liori
fuente
No, no lo he hecho. Vale la pena intentarlo, probablemente
Grzenio
1

Como regla general, si puede usar hdparm en el dispositivo, es la interfaz ATA "antigua", frente a la interfaz SATA / SCSI más nueva. Si ese es el caso, entonces el problema probablemente sea que las operaciones de disco durante las interrupciones no están habilitadas de manera predeterminada. Este es un problema común en algunas máquinas que utilizan la interfaz ATA anterior y degradará el rendimiento del disco o del sistema durante operaciones de E / S pesadas.

Realmente deberías probar esto:

sudo hdparm -t -T /dev/sda
sudo hdparm -a8 -c3 -u1 /dev/sda
sudo hdparm -t -T /dev/sda

Si no ve una mejora en el rendimiento en la segunda ejecución de tiempo (el tercer comando), entonces está sucediendo algo más.

Otro factor es esperar que el modo UDMA6 funcione sobre un cable que no sea UDMA (suponiendo que no sea una interfaz SATA). Si está utilizando un cable ATA de 80 pines, está bien; Si está utilizando un viejo 40-pin, obtendrá todo tipo de dolor. Si el cable es el viejo de 40 pines, deberá reducir la velocidad de transferencia a algo que pueda admitirse "de forma segura". ADVERTENCIA: ajustar la interfaz IDE puede colgar la unidad y / o la interfaz, y si la unidad es su sistema de archivos raíz, ¡todo el sistema se bloqueará con ella!

Si necesita reducir la velocidad de transferencia para que coincida con el hardware, intente lo siguiente:

sudo hdparm -t -T /dev/sda
sudo sync; sleep 3 ; sync    
sudo hdparm -d 1 -X mdma2 /dev/sda
sudo hdparm -t -T /dev/sda

Nuevamente, el segundo tiempo (tercer comando emitido) debería mostrar una mejora.

Por último, el disco en sí puede ser marginal, pero sin informes SMART, es posible que no note el problema (hasta que sea demasiado tarde). Realmente recomendaría instalar el smartmontoolspaquete para ayudarlo, especialmente si tiene una unidad más antigua que necesitará un poco de TLC de vez en cuando.

sudo apt-get update && apt-get install smartmontools

Si todo lo demás falla, busque /var/log/messageserrores de E / S de disco.


Actualizar:

Parece que no estás solo. Hay tableros de mensajes en toda la red que informan todo tipo de angustia con estas unidades.

También se menciona que la unidad utiliza un tamaño de sector de 4k frente al tamaño de 512 bytes "tradicional". Solo puedo imaginar qué tipo de problemas debe estar causando esto.

Por último, al volver a ver su salida, parece que el hilo del diario está atando el sistema. Un sistema de archivos no registrado puede aliviar temporalmente el problema, pero en el mejor de los casos es profiláctico y en el peor de los casos no soluciona el problema.

Avery Payne
fuente
Hola, gracias por tu respuesta. (1) Esta ES una unidad SATA y está conectada mediante un cable sata delgado a la interfaz sata en la placa base. (2) Probé la primera prueba, y el rendimiento realmente disminuyó de 90.93 MB / seg a 52.50 MB / seg. El rendimiento de lectura sin procesar no parece ser el problema (90 MB es lo que espero de esta unidad), es solo que algunas operaciones menores congelan el sistema
Grzenio
La segunda prueba tampoco mejoró realmente nada. Tanto en el primer caso como en el segundo, la mayoría de los parámetros no se pueden configurar: hdparm -d 1 -X mdma2 / dev / sda / dev / sda: configuración usando_dma a 1 (activado) HDIO_SET_DMA falló: ioctl inapropiado para la configuración del dispositivo xfermode a 34 (modo DMA de varias palabras2) HDIO_DRIVE_CMD (setxfermode) falló: intercambio no válido HDIO_GET_DMA falló: ioctl inadecuado para el dispositivo
Grzenio
Instalé smartmontools ayer, pero no sé cómo usarlos. ¿Podría darnos un poco más de detalle?
Grzenio
Ay. Por lo tanto, un nuevo disco duro sería una buena idea.
Warren P
1

Esto finalmente se solucionó! Como señaló @Rachel, el problema era la alineación con los sectores de 4kb, pero desafortunadamente el artículo vinculado era incorrecto :(

La forma correcta de alinear particiones es aquí: http://www.linuxconfig.org/linux-wd-ears-advanced-format

Y este artículo ofrece un punto de referencia bastante bueno para que pueda verificar si su tabla de particiones es correcta: http://article.gmane.org/gmane.linux.utilities.util-linux-ng/2955

En una nota al margen, si tiene esta unidad y usa Linux, también DEBE aumentar uno de los temporizadores inactivos como se describe aquí: http://wdc.custhelp.com/cgi-bin/wdc.cfg/php/enduser/std_adp .php? p_faqid = 5,357 y p_created = 1266947046 y p_sid = Os7DQL2k y p_accessibility = 0 & p_redirect = & p_srch = 1 & p_lva = & p_sp = cF9zcmNoPTEmcF9zb3J0X2J5PSZwX2dyaWRzb3J0PSZwX3Jvd19jbnQ9NTEsNTEmcF9wcm9kcz0yMjcsMjk0JnBfY2F0cz0xMzAmcF9wdj0yLjI5NCZwX2N2PTEuMTMwJnBfcGFnZT0x y p_li = & p_topview = 1

Grzenio
fuente
Segundo enlace no funciona ningún reemplazo?
xliiv el