GNU/Linux >> Tutoriels Linux >  >> Linux

Comment (vraiment) désactiver NCQ sous Linux

Grâce à @frostschutz, j'ai pu mesurer les performances d'écriture sous Linux sans la fonctionnalité NCQ. Le paramètre de démarrage du noyau libata.force=noncq complètement désactivé NCQ.

En ce qui concerne mon problème de performances d'écriture Seagate 6 To, il n'y a eu aucun changement de vitesse. Linux atteint toujours 180 Mio/s.

Mais ensuite j'ai eu une autre idée :
Le pilote Linux n'utilise pas les transferts de blocs de 32 Mio. Le tampon du noyau est beaucoup plus petit, surtout si NCQ avec 32 files d'attente est activé (32 files d'attente * 32 Mio => 1 Gio de tampon AHCI).

J'ai donc testé mon contrôleur SATA avec des transferts de 256 Kio et voilà, il est possible d'atteindre 185 Mio/s.

Je suppose donc que le micrologiciel Seagate ST6000AS0002 n'est pas capable de gérer de gros transferts en rafale ATA. La norme ATA autorise jusqu'à 65 536 blocs logiques, ce qui équivaut à 32 Mio.

SMR - Enregistrement magnétique en bardeaux

Une autre possibilité de mauvaises performances d'écriture pourrait être la technique d'enregistrement magnétique en bardeaux, qui est utilisée par Seagate dans ces périphériques d'archivage. Évidemment, j'ai déclenché un effet rare avec mon implémentation FPGA.


Définition de la profondeur de la file d'attente à 1 (/sys/block/sd*/device/queue_depth ) désactive NCQ, il n'est pas nécessaire d'utiliser le paramètre noyau libata.force=noncq (qui ne peut être défini qu'au démarrage).

valider 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. Comment désactiver les commandes d'arrêt et de redémarrage sous Linux

  2. Comment modifier, supprimer ou désactiver le mot de passe utilisateur sous Linux

  3. UNIX / Linux :Comment verrouiller ou désactiver un compte utilisateur

  4. Comment désactiver une commande spécifique pour un utilisateur spécifique sous Linux

  5. Comment désactiver ipv6 sur une interface spécifique sous Linux ?

Comment désactiver la connexion SSH à un utilisateur spécifique sous Linux

Comment désactiver IPv6 sur Ubuntu Linux

Comment désactiver définitivement Swap sous Linux

Comment désactiver Swap sous Linux

Comment désactiver la vérification de la clé d'hôte SSH sous Linux

Comment désactiver le raccourci Ctrl + Q dans Firefox sous Linux