GNU/Linux >> Linux Esercitazione >  >> Linux

Come disabilitare (davvero) NCQ in Linux

Grazie a @frostschutz, ho potuto misurare le prestazioni di scrittura in Linux senza la funzione NCQ. Il parametro di avvio del kernel libata.force=noncq disabilitato completamente NCQ.

Per quanto riguarda il mio problema di prestazioni di scrittura da 6 TB di Seagate, non ci sono stati cambiamenti nella velocità. Linux raggiunge ancora 180 MiB/s.

Ma poi ho avuto un'altra idea:
Il driver Linux non utilizza trasferimenti di blocchi da 32 MiB. Il buffer del kernel è molto più piccolo, specialmente se NCQ con 32 code è abilitato (32 code * 32 MiB => 1 GiB di buffer AHCI).

Quindi ho testato il mio controller SATA con trasferimenti da 256 KiB e voilà, è possibile raggiungere i 185 MiB/s.

Quindi immagino che il firmware Seagate ST6000AS0002 non sia in grado di gestire grandi trasferimenti burst ATA. Lo standard ATA consente fino a 65.536 blocchi logici, pari a 32 MiB.

SMR - Registrazione magnetica scandolata

Un'altra possibilità per le cattive prestazioni di scrittura potrebbe essere la tecnica di registrazione magnetica a scandole, utilizzata da Seagate in questi dispositivi di archiviazione. Ovviamente, ho attivato un raro effetto con la mia implementazione FPGA.


Impostando la profondità della coda su 1 (/sys/block/sd*/device/queue_depth ) disabilita NCQ, non è necessario utilizzare il parametro del kernel libata.force=noncq (che può essere impostato solo all'avvio).

commit 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. Come disabilitare la pagina di benvenuto predefinita di Apache su Redhat Linux

  2. Come disabilitare i comandi di spegnimento e riavvio in Linux

  3. Come bloccare o disabilitare i normali accessi utente in Linux

  4. Come disabilitare l'autoconfigurazione su IPv6 in Linux?

  5. Come disabilitare ipv6 su un'interfaccia specifica in Linux?

Come disabilitare l'accesso SSH a un utente specifico in Linux

Come disabilitare IPv6 su Ubuntu Linux

Come disabilitare permanentemente lo scambio in Linux

Come disabilitare lo scambio in Linux

Come disabilitare il controllo della chiave host SSH in Linux

Come disabilitare il collegamento Ctrl+Q in Firefox su Linux