GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo (realmente) deshabilitar NCQ en Linux

Gracias a @frostschutz, pude medir el rendimiento de escritura en Linux sin la función NCQ. El parámetro de arranque del núcleo libata.force=noncq deshabilitó NCQ por completo.

Con respecto a mi problema de rendimiento de escritura de Seagate 6TB, no hubo cambios en la velocidad. Linux aún alcanza los 180 MiB/s.

Pero luego tuve otra idea:
El controlador de Linux no utiliza transferencias de fragmentos de 32 MiB. El búfer del kernel es mucho más pequeño, especialmente si está habilitado NCQ con 32 colas (32 colas * 32 MiB => 1 GiB AHCI de búfer).

Así que probé mi controlador SATA con transferencias de 256 KiB y voilà, es posible llegar a 185 MiB/s.

Así que supongo que el firmware Seagate ST6000AS0002 no es capaz de manejar grandes transferencias de ráfagas ATA. El estándar ATA permite hasta 65.536 bloques lógicos, lo que equivale a 32 MiB.

SMR - Grabación magnética con tejas

Otra posibilidad para el mal rendimiento de escritura podría ser la técnica de grabación magnética shingled, que utiliza Seagate en estos dispositivos de archivo. Obviamente, desencadené un efecto raro con mi implementación de FPGA.


Establecer la profundidad de la cola en 1 (/sys/block/sd*/device/queue_depth ) deshabilita NCQ, no es necesario usar el parámetro del kernel libata.force=noncq (que solo se puede configurar en el arranque).

confirmar 360f654e7cda850034f3f6252a7a7cff3fa77356

 Date:   Sat Sep 30 19:45:00 2006 +0900

 [PATCH] libata: turn off NCQ if queue depth is adjusted to 1
 
 Turn off NCQ if queue depth is adjusted to 1.

Linux
  1. Cómo deshabilitar la página de bienvenida predeterminada de Apache en Redhat Linux

  2. Cómo deshabilitar los comandos de apagado y reinicio en Linux

  3. Cómo bloquear o deshabilitar los inicios de sesión de usuarios normales en Linux

  4. ¿Cómo deshabilitar la configuración automática en IPv6 en Linux?

  5. ¿Cómo deshabilitar ipv6 en una interfaz específica en linux?

Cómo deshabilitar el inicio de sesión SSH para un usuario específico en Linux

Cómo deshabilitar IPv6 en Ubuntu Linux

Cómo deshabilitar permanentemente el intercambio en Linux

Cómo deshabilitar el intercambio en Linux

Cómo deshabilitar la verificación de clave de host SSH en Linux

Cómo deshabilitar el acceso directo Ctrl+Q en Firefox en Linux