Native Command Queuing (NCQ): kas tai ir kaip veikia SATA diskus
Sužinokite, kas yra Native Command Queuing (NCQ) ir kaip ši SATA diskų technologija optimizuoja užklausas, didina našumą ir taupo diskų resursus serveriuose ir stacionariuose kompiuteriuose.

"Native Command Queuing" (NCQ) – tai technologija, skirta padidinti kompiuterių SATA standžiųjų diskų našumą. Pagrindinė idėja – leisti diskui pačiam optimizuoti gautų skaitymo ir rašymo užklausų eiliškumą, kad būtų sumažintas disko galvutės judėjimas ir laikas, praleistas laukiant norimos sektoriaus pozicijos. NCQ ypač naudinga situacijose, kai tuo pačiu metu yra kelios konkurencingos I/O užklausos, pavyzdžiui, serverių aplinkoje arba daugiaužduotėse taikomosiose programose. Tokiomis apkrovomis NCQ gali reikšmingai pagerinti atsakų laikus ir bendrą pralaidumą, taip pat kiek sumažinti mechaninį nusidėvėjimą.
Reikėtų atkreipti dėmesį, kad tam tikrais atvejais, ypač vienos nuoseklios srautinės operacijos (pavyzdžiui, daugeliu žaidimų ar didelių sekvencinių kopijavimo operacijų), NCQ gali sukelti nedidelį papildomą vėlavimą dėl eiliškumo pertvarkymo logikos. Daugelis šių praneštų „sulėtėjimų“ buvo susiję su senesnėmis įgyvendinimo versijomis ir specifiniais darbo krūviais; modernūs diskai ir valdikliai dažniausiai šiuos klausimus sumažina.
Kaip veikia NCQ
Technologiškai NCQ naudoja žymėtas komandas (tagged commands): operacinė sistema arba valdiklis gali siųsti keliolika arba keliasdešimt užklausų vienu metu, o diskas laiko jas eilėje ir pats nusprendžia, kokia tvarka jas vykdyti. Diskas atsižvelgia į galvutės padėtį ir rotacinį poslinkį (rotational latency), todėl gali išdėstyti užklausas taip, kad bendras galvutės judėjimas būtų minimalus. Tai sumažina perjungimų skaičių tarp atskirų disko cilindrų ir mažina vidutinį atsakymo laiką daugiaužduotėse apkrovose.
NCQ maksimalus eilės ilgis teorijoje yra 32 skrydžio komandos (praktikoje – dažnai 31, nes vienas tagas rezervuojamas). Dėl to diskas gali turėti keliasdešimt neatliktų komandų „skrydžio“ būsenoje ir optimizuoti jų vykdymą pagal realias mechanines sąlygas.
Skirtumai tarp NCQ, PATA TCQ ir SCSI TCQ
Prieš NCQ atsirado lygiagrečiosios ATA žymėtosios komandų eilės sudarymo (TCQ) versija. ATA bandymą integruoti TCQ ribojo specifika, susijusi su pagrindinių magistralių adapterių ir ISA tipo įrenginių protokolų suderinamumu — todėl TCQ ATA aplinkoje neprigijo dėl didelės procesoriaus apkrovos ir nedidelio realaus našumo prieaugio.
NCQ skiriasi nuo PATA TCQ tuo, kad komandų eiliškumą keičia pats diskas, o ne operacinė sistema, ir kiekviena komanda turi savo žymę. Tai leidžia diskui priimti sprendimus remiantis geriausia vietine informacija apie galvutės padėtį ir rotaciją. NCQ ir PATA TCQ maksimalus eilės ilgis yra 32 skrydžio komandos (praktikoje – 31), o SCSI TCQ maksimalus eilės ilgis yra 264 skrydžio komandos.
Įjungimas ir palaikymas
Norint, kad NCQ veiktų, jis turi būti palaikomas tiek SATA valdiklio (pagrindinės magistralės adapterio), tiek pačioje laikmenoje (kietajame diske). Be to, operacinėje sistemoje turi būti įkelta atitinkama įrenginio tvarkyklė, kad valdiklyje būtų aktyvuotas NCQ.
Daugelis naujesnių mikroschemų rinkinių palaiko pažangiąją prievado valdiklio sąsają (AHCI), o AHCI suteikia standartinę sąsają NCQ įgalinimui ir valdymui, todėl diegiant modernias operacines sistemas dažniausiai papildomas konfigūravimas nereikalingas. Tiesą sakant, naujesni „Linux“ branduoliai natūraliai palaiko AHCI. Deja, "Windows XP" reikalauja įdiegti konkretaus gamintojo tvarkyklę, net jei pagrindiniame magistralės adapteryje yra AHCI. Šią situaciją ištaiso "Windows Vista", įtraukdama bendrąją AHCI tvarkyklę.
Praktiškai: prieš įjungiant AHCI BIOS/UEFI nustatymuose verta išsaugoti svarbius duomenis ir, jei keičiate režimą iš IDE į AHCI po operacinės sistemos įdiegimo, atlikti papildomus žingsnius (pvz., įjungti atitinkamus tvarkyklių parametrus arba naudoti diegimo laikmenos tvarkykles), kad sistema sėkmingai paleistųsi.
Privalumai ir trūkumai
- Privalumai: geresnis atsakas ir didesnis pralaidumas daugiaužduotėse ar serverio tipo apkrovose; mažesnis galvutės judėjimas – mažesnis nusidėvėjimas; lengviau pasiekti geresnį bendrą I/O efektyvumą.
- Trūkumai: galimi papildomi vėlavimai vienos nuoseklios eilės operacijoms arba specifiniams žaidimams/priemonių apkrovoms; kai kuriais atvejais seno valdiklio arba disko firmware klaidos gali pakenkti našumui.
NCQ ir SSD / NVMe
NCQ buvo sukurta mechaniniams diskams, kur rotacinė latencija ir galvutės judėjimas turi didelę reikšmę. Su kietojo kūno laikmenomis (SSD) mechaninių judesių nėra, todėl NCQ nauda kitokia — SSD vis tiek gali naudoti taguotų komandų eilę, kad efektyviau paskirstytų lygiagretų I/O jų valdiklyje. Tačiau šiuolaikinės NVMe sąsajos sukurtos nuo pat pradžių su gilia ir daugiasluoksne eilės tvarkymo palaikymo architektūra (žymiai didesnės eilės gylis ir greitesnis protokolas), todėl NVMe gerokai pranoksta SATA+NCQ galimybes didelės spartos SSD scenarijuose.
Praktinės rekomendacijos
- Jei naudojate serverį arba daugiaužduotę sistemą su SATA HDD, palikite NCQ įjungtą – dažniausiai duoda naudą.
- Jeigu pastebite prastėjantį reagavimą konkrečiose programose, laikinai išbandykite NCQ išjungimą ir įvertinkite poveikį (tai galima padaryti pakeitus tvarkyklės arba BIOS/UEFI nustatymus).
- Prieš perjungiant iš IDE į AHCI režimą, pasirūpinkite, kad operacinė sistema turėtų reikiamas tvarkykles, arba įjunkite AHCI prieš diegiant OS.
- Jei naudojate SSD ir turite galimybę rinktis NVMe, verta apsvarstyti NVMe sprendimą dėl geresnio keitiklių ir eilės valdymo pritaikymo šiuolaikinėms reikmėms.
- Patikrinkite disko ir valdiklio firmware atnaujinimus – kai kuriais atvejais bugai, susiję su NCQ, ištaisyti naujesnėse firmware versijose.
Jei norite patikrinti, ar jūsų diskas palaiko NCQ ir ar jis įjungtas, "Linux" sistemoje galite pasinaudoti įrankiais kaip hdparm arba smartctl; Windows aplinkoje informacija dažnai matoma per Device Manager arba gamintojo diagnostikos programinę įrangą.
Susiję puslapiai
- Žymos Komandų eilės
Klausimai ir atsakymai
Klausimas: Kas yra "Native Command Queuing"?
A: "Native Command Queuing" (NCQ) - tai technologija, skirta padidinti kompiuterių SATA standžiųjų diskų našumą, leidžiant atskiram standžiajam diskui optimizuoti skaitymo ir rašymo užklausų vykdymo tvarką.
K: Kaip NCQ pagerina našumą?
A: NCQ gali sumažinti nereikalingų disko galvutės judesių kiekį, todėl pagerėja disko našumas ir šiek tiek sumažėja jo nusidėvėjimas darbo krūviuose, kai vienu metu atliekama daug skaitymo ir (arba) rašymo užklausų, pavyzdžiui, serverio tipo taikomosiose programose.
K: Ar NCQ sulėtina HD prieigą tam tikrose programose?
A.: Taip, NCQ iš tikrųjų gali sulėtinti HD prieigą tam tikrose programose, pavyzdžiui, žaidimuose ir nuosekliojo skaitymo bei rašymo programose, nes dėl NCQ logikos atsiranda papildomas vėlavimas.
K: Kuo "Native Command Queuing" skiriasi nuo PATA TCQ?
A: Kitaip nei PATA TCQ, komandų eiliškumo keitimą naudojant NCQ atlieka diskas, o ne operacinė sistema, ir kiekviena komanda yra vienodai svarbi. Diskas turi daugiau žinių apie savo našumo charakteristikas, todėl optimizuodamas komandas gali atsižvelgti į pasukimo padėtį. Be to, NCQ maksimalus eilės ilgis yra 32, palyginti su PATA TCQ maksimaliu eilės ilgiu 32 (praktikoje - 31).
Klausimas: Kokius aparatinės įrangos reikalavimus reikia atitikti, kad NCQ būtų įjungta?
A: Kad NCQ būtų įjungtas, jis turi būti palaikomas ir įjungtas tiek SATA pagrindinės magistralės adapteryje, tiek pačiame kietajame diske. Be to, į operacinę sistemą turi būti įkelta atitinkama įrenginio tvarkyklė, kad būtų galima įjungti NCQ pagrindiniame magistralės adapteryje.
Klausimas: Ar "Windows XP" yra bendroji AHCI palaikymo galimybė?
A: Ne, "Windows XP" reikia įdiegti konkretaus gamintojo tvarkyklę, net jei AHCI yra pagrindiniame magistralės adapteryje. Tačiau "Windows Vista" yra bendroji AHCI tvarkyklė, kuri leidžia bendrai palaikyti AHCI įrenginius.
Ieškoti