Opravdu si nemyslím, že se tohle děje. NCQ je vypínatelné zvlášť. Cache jednotky je něco jiného. Běžně se dá dát jednotka podporující NCQ na řadič, který NCQ nepodporuje a Write cache je aktivní. Jde to vidět i na výše uvedeném odkazu na blacklist featur. U některých jednotek se NCQ vypíná tímto blacklistem, protože je s NCQ pomalejší, než bez NCQ. S write cache to nemá co dělat.
Viz https://github.com/torvalds/linux/blob/master/drivers/ata/libata-core.c#L4453
no mě to popravdě taky zaskočilo, z pohledu uživatele a dokumentů je ncq a write-cache opravdu jiná věc, otázka je, jak je to implementováno uvnitř disku.
se ukázalo, že vypnutí ncq zároveň vypne write-cache. proč to nevím, ale zkuste si sami. zajímavé by to bylo pro ty smr disky, ale tam ani nevím, jak přesně měřit write rychlost, protože mívají 16GB normálního zápisu a pak to jde do šindele...
(pozor, přepisuje data na partici, zde sdb1)
echo 1 > /sys/block/sdb/device/queue_depth
hdparm -W 1 /dev/sdb
ioping -w100 -R -D /dev/sdb1
ioping -w100 -RL -D /dev/sdb1
ioping -w100 -RWWW -D /dev/sdb1
ioping -w100 -RLWWW -D /dev/sdb1
teď jsem všechny 4 kombinace (queue_depth=1,31; W =0,1) zkoušel na starý Seagate Baracude 500GB a tam to kupodivu nedělá vůbec žádný rozdíl
jestli bude čas zkusím na WD, tam právě poklesl stejně výkon při zápisu při queue_depth=1 stejně jako W=0, na čtení (a to ani náhodný) to vliv nemělo
Jinak noncq se nemusí vypnout pro všechny jednotky, dá se vypnout jen pro konkrétní. Asi by to stálo za pokus. Tím by se nejspíš přišlo na to, která(é) jednotka(y) zlobí.
Viz https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
[\quote]
no tak za chodu vypínat a zapínat přes /sys/block/sdb/device/queue_depth je praktičtější, nemusím restartovat
NCQ zrychluje random access, protože umožňuje, aby si jednotka přeuspořádala pořadí požadavků (čtecích i zápisových) tak, aby se vybavily rychleji, než kdyby se řešili postupně.
leda teoreticky, ve skutečnosti ne. viz. benchmark výše. prostě implementace ncq v discích stojí za pendrek, kdyby to nevypínalo write-cache, tak by to bylo lepší vypnout