производителност Disk - кратка образователна програма
Когато става въпрос за изпълнение, на първо място се обърне внимание на честотата на процесора, скоростта на паметта, чипсет и т.н. и т.н. за дисковата подсистема, и ако си спомни, между другото, обикновено се обръща внимание на само една опция - линейната скорост на четене. В същото време, тя е дисковата подсистема, често се превръща в пречка в системата. Защо се случва това и как да го избегне, ще опишем в тази статия.
По време на въртенето на секторите на дискови премине от магнитните глави, които функционират четат или пишат информация. скорост на въртене (ъглова скорост) диск в крайното време константа, обаче, линейната скорост на диска различни части е различен. Външният ръб на диска е максимална при вътрешната - е минимален. Помислете за следната картина:
Както може да се види за същия период от време, в определена област на диска, за да направи завой в същия ъгъл, ако искаме да определи тази област като сектор, се оказва, че той получава пет сектора с външния раса и само три от вътрешната страна. Следователно за даден интервал от време магнитна глава с външния цилиндър-голямо количество информация от вътрешния. На практика това се проявява в това, че графикът се чете всяка скорост на диска е спадащ крива.
Започвайки сектор и цилиндър винаги се намира от външната страна, осигуряване на максимална скорост на данни, така че е препоръчително да се постави в системния дял в началото на диска.
Сега нека да преминем към по-високо ниво - нивото на файловата система. Файловата система работи над големи блокове от данни - клъстери. Типични NTFS размер на клъстера - 4 KB или 8 сектори. Приемане на индикация да се разгледа определен клъстер диск четене произвежда 8 последователни сектори, операционната система последователно подреждане на данни инструктира за четене на данни, започвайки от клъстер 100 и завършва клъстер 107. Това действие ще бъде работа с един вход-изход (IO), максималният брой на такива операции секунда (IOPS) и, разбира се, зависи от това колко сектори ще се проведе от ръководителя на звеното от време (както и времето на главата позициониране). Данните курс измерва в MB / сек (Mbps), и зависи от количеството на данните, които се четат в една входно-изходна операция. Последователното подреждането на обмен на данни скоростта на е максимална, а броят на входно-изходни операции е минимална.
Няма да има излишно да припомним на параметъра, като плътността на запис, която се изразява в района е необходимо за запис на един бит информация. Колкото по-висока е стойността, толкова повече данни могат да се настанят един плоча и по-висока е скоростта на линеен обмена на данни. Това обяснява и по-висока производителност на скоростта на съвременните твърди дискове, въпреки че те са технически не се различава от по-старите модели. Фигурата по-долу илюстрира тази ситуация. Лесно е да се забележи, когато запис по-висока плътност, за един и същ интервал от време, при същата скорост на въртене, за да се чете / записва повече информация
Сега помислете обратната ситуация, ние трябва да се помисли за голям брой малки файлове, пръснати из целия диск. В този случай, броят на входно-изходни операции е голяма и скоростта на трансфер на данни е ниска. Главна времето за изчакване ще заемат достъпа до следващия блок данни, който зависи от времето на главата позициониране и забавянето се дължи на въртенето на диска. Един прост пример: ако след отбора 100 сектор се чете 98, а след това трябва да чакам за пълно завъртане на диска, толкова дълго, тъй като тя ще бъде възможно да се чете на сектора. Тук е необходимо да се добави времето, необходимо физически да прочете правилния брой сектори. Комбинацията от тези параметри ще бъде на случаен принцип времето за достъп. който има много голямо влияние върху работата на твърдия диск.
Трябва да се отбележи, че в продължение на много операционни системи и сървърни задачи (СУБД виртуализация и т.н.) характеристика е със свободен достъп и с размер на блока от 4 KB (размер на клъстера), основният показател за ефективност не е линейна скорост на обмен на данни (Mbps), и максималния брой на входно-изходни операции в секунда (IOPS). Колкото по-висока е стойността, толкова повече данни могат да бъдат прочетени за единица време.
Въпреки това, броят на IOPS не може да расте безкрайно, тази стойност е много стриктно ограничена максимална физическа издръжливост на твърдия диск, а именно, на случаен принцип времето за достъп.
Нека поговорим за фрагментация, същността на това явление е добре известно, ние също го погледнете през призмата на изпълнение. За по-големи файлове и линейни товари фрагментация може значително да намали производителността, тъй като последователно достъп ще се превърне в случаен, което води до рязко намаляване на скоростта на достъп, а също и драстично увеличаване на броя на входно-изходни операции.
Когато случаен характер достъп на фрагментация не играе особена роля, тъй като няма разлика къде точно диска е специално блок от данни.
действителните резултати на твърдия диск - тя винаги е баланс между комуникация и размера на вложените изходни операции процент. За пореден четене типичен голям размер на данни, която се чете в един вход изход работа. Максимална скорост (Mbps) се постига последователни сектори четене от външния ръб на диска, броят на входно-изходни операции (IOPS), а най-ниската е - дълъг път, позиционира главата трябва да бъде по-малко, данните се четат в същото време вече. От вътрешната писта линейната скорост ще бъде по-ниска, броят на IO - по-висок по шорттрек, което трябва да се позиционира главата по-често, данните се четат по-малко.
Когато случаен достъп до високоскоростен ще бъде минимално, тъй като размера на пакета данни, е много малък (в най-лошия случай, на клъстера) и производителност се опира на максималната използваема размер на IOPS. За днешните масови устройства, тази стойност е около 70 IOPS, че е лесно да се изчисли, че с произволен достъп до размера на пакета е 4 KB, ние получаваме максималната скорост от не повече от 0,28 Mbps.
Неразбирането на този етап често води до факта, че дисковата подсистема е пречка, което забавя цялата система. По този начин, при избора между двете дискове с максимална линейна скорост от 120 до 150 MBPS, много не се колебайте да изберете втория, не се гледа на това, че първият диск осигурява 70 IOPS, а втората само на 50 IOPS (доста типична ситуация за икономична серия), и след това ще бъде много изненадан, защо "по-бързо" диск, така бавно.
Какво се случва, ако броят на IOPS диск не е достатъчно, за да се справят с всички искания? Няма да има опашка от дискови искания. На практика всичко, което е по-сложно и опашката на диска ще се случи дори и в случай, когато IOPS достатъчно. Това се дължи на факта, че различните процеси, които имат достъп до диска, имат различен приоритет, и че операциите по запис винаги имат предимство пред чете. За да се направи оценка на ситуацията, има параметър Disk Queue Length. чиято стойност не трябва да надвишава (като препоръки на Microsoft)
Във всеки случай, постоянна голяма дължина на опашката показва, че системата не е достатъчно текущата стойност на IOPS. Увеличаването на опашката за диск на вече работещи системи, предполага увеличаване на товара или за отказ или носят твърди дискове. Във всеки случай, трябва да се мисли за обновяване дисковата подсистема.