performanță Disk - un program educațional scurt
Când vine vorba de performanță, în primul rând, să acorde o atenție la frecvența procesorului, viteza de memorie, chipset-ul, etc. etc. despre subsistemul disc și dacă este amintit, în treacăt, de obicei, acordând o atenție la doar o singură opțiune - viteza de citire liniară. În același timp, acesta este subsistemul de disc devine adesea un blocaj în sistem. De ce se întâmplă acest lucru și cum să-l evite, vom descrie în acest articol.
În timpul rotației sectoarelor de disc trec prin capetele magnetice care efectuează citească și să scrie informații. Viteza de rotație (viteza unghiulară) discului în timpul final constant, cu toate acestea, viteza liniară a discului porțiuni diferite este diferită. Marginea exterioară a discului este maximă la interior - este minimă. Luați în considerare următoarea imagine:
După cum se poate observa în aceeași perioadă de timp, o anumită zonă a discului pentru a face un viraj la același unghi, în cazul în care vom desemna acest domeniu, ca un sector, se pare că acesta devine cinci sectoare cu cursa exterioară și doar trei pe interior. Prin urmare, pentru un anumit interval de timp un cap magnetic cu respectiva cantitate cilindru exterior mai mare de informații decât interior. În practică, acest lucru se manifestă în faptul că programul citește orice viteza de disc este o curbă în declin.
Sectorul de pornire și cilindru sunt întotdeauna situate la exterior, oferind rata maximă de date, de aceea este recomandat să plasați partiția de sistem la începutul discului.
Acum, să trecem la un nivel superior - nivelul sistemului de fișiere. Sistemul de fișiere funcționează peste blocuri mari de date - clustere. Dimensiunea tipică de cluster NTFS - 4 KB sau 8 sectoare. Primirea o indicație să ia în considerare anumite lectură disc de cluster produce 8 sectoare consecutive, dispunerea secvențială a sistemului de operare a datelor instruiește să citească date pornind de la ciorchine 100 și se termină clusterului 107. Această acțiune va fi o singură operație de intrare-ieșire (IO), numărul maxim de astfel de operațiuni a doua (IOPS) și, desigur, depinde de cât de multe sectoare vor fi deținute de către șeful unității de timp (precum și timpul de poziționare cap). Rata de schimb de date măsurate în MB / sec (MBPS), și depinde de cantitatea de date ce trebuie citite într-o singură operație de intrare-ieșire. Dispunerea secvențială a cursului de schimb de date este maxim, iar numărul de operații de intrare-ieșire este minimă.
Nu va fi de prisos să amintesc parametrul cum ar fi densitatea de înregistrare, care se exprimă în zona necesară pentru înregistrarea unui singur bit de date. Cu cât valoarea, mai multe date pot găzdui o placă și mai mare viteza schimbului de date liniare. Acest lucru explică performanța mai mare viteza de hard disk-uri moderne, deși punct de vedere tehnic acestea nu sunt diferite de modelele mai vechi. Figura de mai jos ilustrează această situație. Este ușor de observat atunci când o înregistrare cu densitate mai mare pentru unul și același interval de timp, la aceeași viteză de rotație pentru a fi citit / mai multe date înregistrate
Considerăm acum situația opusă, trebuie să ia în considerare un număr mare de fișiere mici, împrăștiate aleator pe disc. În acest caz, numărul de operațiuni de intrare-ieșire este mare, iar rata de transfer de date este scăzută. timpul de așteptare principal va ocupa accesul la următorul bloc de date, care depinde de timpul de poziționare cap și întârzierea datorită rotației discului. Un exemplu simplu: în cazul în care după ce echipa 100 sector merge citit 98, atunci trebuie să aștepte pentru o revoluție completă a discului, atâta timp cât va fi posibil pentru a citi acest sector. Aici este necesar să se adauge timpul necesar pentru a citi fizic numărul corect de sectoare. Combinația dintre acești parametri vor fi timpul de acces aleator. care are un impact foarte mare asupra performanței hard disk.
Trebuie remarcat faptul că pentru multe sisteme de operare și sarcini de server (DBMS de virtualizare, etc) caracteristică este un acces aleator cu o dimensiune bloc de 4 KB (dimensiune de cluster), principalul indicator al eficienței nu este o viteză liniară de schimb de date (MBPS), iar numărul maxim de operațiuni de intrare-ieșire pe secundă (IOPS). Cu cât valoarea, mai multe date pot fi citite pe unitatea de timp.
Cu toate acestea, numărul de IOPS nu poate crește la infinit, această valoare este foarte strict limitată de top hard disk de performanță fizică, și anume, timpul de acces aleator.
Să vorbim despre fragmentare, esența acestui fenomen este bine cunoscut, de asemenea, ne uităm la ea prin prisma performanței. Pentru fișiere de mari dimensiuni, și fragmentare sarcini liniare poate reduce semnificativ performanțele, deoarece accesul secvențial va deveni o întâmplare, provocând o scădere bruscă a vitezei de acces și, de asemenea, crește dramatic numărul de operațiuni de intrare-ieșire.
Atunci când natura de acces aleatoriu de fragmentare nu joacă un rol special, deoarece nu există nici o diferență exact în cazul în care discul este un anumit bloc de date.
Performanțele reale de hard disk - este întotdeauna un echilibru între comunicare și valoarea de intrare rata operațiunilor de ieșire. Pentru citire secvențială dimensiune tipică de date de mare, care este citită într-o singură operațiune de ieșire de intrare. Viteza maximă (Mbps) se realizează sectoare secvențiale de citire de la marginea exterioară a discului, numărul de operațiuni de intrare-ieșire (IOPS), în timp ce cea mai mică este - cale lungă, poziționați capul trebuie să fie mai puțin, datele se mai citesc în același timp. Pe viteza interioară liniară piesa va fi mai mic, numărul de IO - mai mare de cale ferată scurt, trebuie să poziționeze capul mai des, datele sunt citite mai puțin.
Atunci când viteza de acces aleatoriu va fi minim, deoarece dimensiunea pachetului de date este foarte mic (în cel mai rău caz, cluster) și performanța reazemă cantitatea maximă utilizabilă de IOPS. Pentru unitățile de masă de astăzi, această valoare este de aproximativ 70 de IOPS, este ușor de calculat că, cu acces aleator la dimensiunea pachetului este de 4 KB, obținem viteza maximă de cel mult 0,28 Mbps.
Neintelegerea din acest punct de multe ori duce la faptul că subsistemul disc este o strangulare care incetineste întregul sistem. Astfel, atunci când aleg între cele două discuri cu o viteză liniară maximă de 120 până la 150 Mbps, mulți nu ezita să aleagă a doua, nu se uită la ea, primul disc oferă 70 IOPS, iar a doua doar 50 IOPS (situație destul de tipic pentru seria economică), și apoi va fi foarte surprins, de ce „mai repede“ drive atât de lent.
Ce se întâmplă dacă numărul de IOPS un disc nu este suficient să se ocupe de toate cererile? Nu va fi o coadă de cereri de disc. În practică, totul este mai complicat, iar coada discului va avea loc chiar și în cazul în care IOPS suficient. Acest lucru se datorează faptului că diferitele procese care accesează discul, au o prioritate diferită și că operațiunile de scriere au întotdeauna prioritate față citește. Pentru a evalua situația, există un parametru de disc Lungime coadă. a căror valoare nu trebuie să depășească (ca recomandările Microsoft)
În orice caz, o lungime constantă coadă mare indică faptul că sistemul nu este suficient de valoarea curentă a IOPS. Creșterea cozii de disc pe sistemele deja de lucru sugerează fie creșterea sarcinii sau la defectarea sau uzura hard disk-uri. În orice caz, ar trebui să se gândească la modernizarea subsistemului disc.