NCQ (Native Command Queuing)

NCQ, ou Native Command Queuing est un protocole SATA qui permet, en gros, d'envoyer plusieurs requêtes en même temps a votre disque dur, afin qu'il réponde à ces requêtes dans le meilleur ordre possible (le disque va lire les donnés en suivant le chemin le plus court possible).

Cela permet un gain de performance. (http://techreport.com/articles.x/8624/3)

Si votre carte mère et votre disque dur permettent l'utilisation de NCQ (souvent désactivé par défaut), ce serait dommage de ne pas en profiter !

L'utilisation de NCQ passe par l'activation du mode SATA AHCI dans le bios. Pour pouvoir utiliser ce mode, il faut que ces éléments soient compatibles :

  • Le système d'exploitation, c'est le cas pour Ubuntu et Windows (nativement pour Vista et +, requiert un driver pour Windows XP).
Attention, si un autre système d'exploitation est installé à côté d'Ubuntu et qu'il ne gère pas le mode AHCI, il ne pourra plus démarrer tant que vous n'aurez pas désactivé l'AHCI.
  • La carte mère et le bios : certains bios ne permettent pas l'activation de l'AHCI
  • Le disque lui même

Effectuer les étapes suivantes :

Est ce que mon disque dur supporte NCQ ?

Pour le savoir faites (en remplacent /dev/sda en fonction du disque à tester) :

sudo hdparm -I /dev/sda | grep NCQ

Résultat positif :

	   *	Native Command Queueing (NCQ)

… et négatif :

	   	Native Command Queueing (NCQ)

(ou rien)

Si le résultat est négatif, vous ne pouvez rien faire à part changer de disque dur.

Est ce que l'AHCI est activé ?

Le mieux est d'aller voir directement dans le bios.

Vous pouvez aussi voir si Ubuntu considère que vos disques SATA comme des disques IDE :

je ne suis pas certain de l'efficacité de ce test avec toutes les cartes mères.
$ lshw

<...>
        *-ide:0
             description: IDE interface
             product: 82801JI (ICH10 Family) 4 port SATA IDE Controller #1
             vendor: Intel Corporation
<...>

… et avec l'AHCI activé :

$ lshw

<...>
        *-storage
             description: SATA controller
             product: 82801JI (ICH10 Family) SATA AHCI Controller
             vendor: Intel Corporation
<...>

Si l'AHCI est désactivé… activez le dans le bios de votre carte mère (généralement option "SATA Mode").

Est ce que NCQ est en cours d'utilisation ?

Si les deux points précédents sont remplis, NCQ devrait normalement être en cours d'utilisation par Ubuntu. Une petite vérification s'impose:

dmesg | grep NCQ

Le résultat est positif si vous obtenez (depth 31/32), par exemple :

[    1.851473] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32)

Dans ce cas, félicitation, vous avez activé le mode NCQ !

Une fois le mode AHCI activé, vous pouvez aussi faire d'autres trucs cools comme le hot plug (branchement à chaud de disques durs SATA) !

Et le résultat est négatif si vous obtenez (depth 0/32), par exemple :

[    1.851473] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)

Si ça ne marche pas… Vérifiez que le mode AHCI de votre matériel est bien supporté par Linux: https://ata.wiki.kernel.org/index.php/Hardware,_driver_status

congelli501 Le 20/06/2010, 00:24

  • ncq_native_command_queuing.txt
  • Dernière modification: Le 15/12/2011, 14:17
  • (modification externe)