Ofset jednotlivych partition
Dan Lukes
dan at obluda.cz
Tue Jan 24 18:53:49 CET 2006
Kaminar napsal/wrote, On 01/24/06 14:19:
> Procital jsem man bsdlabel a podle toho, co tam
> bylo psano, by asi bylo mozne jednotlive partisny usazovat
> na diksu v ruznem poradi a ne jen v poradi "a", "b", "d", ....
> Vzpomnel jsem si, ze na InstallFestu jeden clovek, ktery
> predvadel instalaci GNU/Linuxu, rikal, ze je dobre
> umistit swap doprostred HDD, protoze je tam nejrychlejsi
> pristup.
...
> Nebo, co takhle umistit swap az na konec disku? Je
> v tom rozdil, co se tyce rychlosti?
To je "mutiurovnovy" dotaz. ;-)
Zacneme s partition a slice. Jejich fyzicke poradi na disku neni vazano
na poradi v prislusne tabulce. DOkonce lze zaznamy v tabulkach vicve
mene libovolne prehazovat, aniz by to melo na data jiny dopad nez ten,
ze je treba prepsat fstab (urcite specialni postaveni ma nakonec jen
partition 'a' a to jen v pripade, ze je "bootovaci". V takovem pripade
ji tak uplne beztrestne prejmenovavat nelze.
Poradi v tabulce slice nebo partition nema, celkem pochopitelne, na
rychlost vliv celkem zadny.
A tim se dostavame k fyzickemu umisteni na disku.
Doba pristupu ke konkretnimu sektoru se sklada z dobu potrebne k
vystavenim hlav na prislusny cylindr a dale z doby za kterou se pod
hlavu dostane pozadovany sektor a zdoby, za kterou je sektor precte
(doba, za kterou se "protoci" pod hlavou).
Podivame se nejprve na druhe dve.
Disky pouzivaji konstantni uhlovou rychlost. Stare disky pritom
pouzivaly konstantni pocet sektoru na stope. U takoveho disku je doba
pristupu k sektoru na konkretni stope konstantni pro vsechny stopy a
konstantni je o doba precteni jednoho sektoru - a z tohoto pohledu neni
rozdilu na ktere konkretni stope sektor je. Ani v pripade, ze
pristupujeme k vetsimu mnozsti sektoru po sobe nasledujicich neni rozdil
- jedna otazka disku trva vzdy stejne a za tu dobu lze precist stale
stejny pocet sektoru. O starych disku tak lze vzit v uvahu jen to, ze u
vnejsich stop je hustota zaznamu nizsi a zaznam dat je tak
spolehlivejsi. Umisteni dat tak ma vliv na spolehlivost, nikoly na rychlost.
Nove disky tak epouzivaji konstantni uhlovou rychlost, ale zaznam je
"zonovy" - v ruznych cylindrech je ruzny pocet sektoru na stope. Doba
vyhledani konkretniho sektoru na stope je sice pro vsechny stopy stejna
(prumerne jde o dobu za kterou se disk odoci o polovinu), ale na
vnejsich stopach je sektoru vic a jsou tedy (uhlove) mensi - precteni
sektoru tedy trva kratsi dobu. Pri sekvencnim cteni pak lze na vnejsich
stopach za stejny cas precist vic sektoru (protoze jich tam vic je).
A ted k te prvni dobe.
Data, ke kterym potrebujete pristupovat rychle by mely byt co nejbliz
jinym datum, ke kterym pristupujete nejcasteji.
Na starem typu disku, kdyby byl zcela zaplneni, a vy jste pristupovali
ke vsem na nem rozlozenym datum nahodne by optimalnim mistem byla
skutecne prostredni stopa. K ni je ze vsech ostatnich stop prumerne
nejbliz. Na disku se zonovym zaznamem to uz ale prostredni stopa nebude
- vnejsi casti disku obsahuji vice sektoru je tedy pravdepodobnejsi, ze
cteme tam nez n avnitrnich stopach. Optimalni stopa pak neni ta s
"prostrednim cislem", ale ta, ktera ma na obe strany disku od sebe
stejny pocet sektoru. I v tomto pripade, ze predpokladu, ze je cely disk
zaplnen daty a ke vsem pristupujeme statisticky stejne casto.
Jakmile neni disk zaplnen zcela neni bude optimalni stopa jinde - v
miste, ktere bude pulit disk na dve stejne zaplnene poloviny. Stale za
predpokladu, ze ke vsem datum pristupujeme stejen casto.
Jakmile navic nepristupujeme k datum stejne casto, bud epoloha
"optimalni stopy" jeste nekde uplne jinde - a to podle toho, jake bud
erozlozeni pristupu k datum v ruznych castech disku.
A tim jsme dosli, rekl bych, k dost pesimistickemu zaveru, ze pokus o
optimalizaci pristupove doby k vybranym jakoukoliv "trivialni uvahou"
povede stejne pravdepodobne ke zrychleni v porovnani s nahodne
umistenymi tymiz daty jako ke zpomaleni.
A to jeste neni pesimismu konec.
U modernich disku plati, ze tzv. geometrie disku, tak jak ji prezentuji
navenek, neni v zadnem definovanem vztahu ke skutecnemu rozlozeni dat na
plotnach. To, co se navenek zda byt stredni stopou ji nejenze nemusi byt
- ale dokonce nemusi fyzicky jit ani o data na jedne stope (a tak pri
cteni dat z teto zdanlive stopy muze ve skutecnosti dochazet vnitrne k
seeku se vsemi prodlevami z toho plynoucimi). Neni ani zrejme, zda je
sektor "0" umisteny na vnejsim ci vnitrnim okraji ploten - nebo zda je
vubec na okraji. Setkal jsem se uz i s tim, ze stopa "0" byla zhruba
veprostred pripadne n ahranici vnejsi tretiny - a to prave ve snaze
optimalizovat pristupovou rychlost (s predpokladem, ze disk je
nejcasteji jedina partition a soubory OS, ke kterym se pristupuje casto,
byly zapsany jako jedny z prvnich).
Pokud tedy nejste schopni (a to vetsinou nejste) zjistit skutecne
rozlozeni dat disku je jakykoliv pokus o "rucni" optimalizaci podoben
strileni do terce naslepo ...
Obzvlast kdyz byste meli zahrnout i takove veci jako "prumerne zaplneni
disku" a "frekvence pristupu ke konretnim datum na konretnim (fyzickem)
miste disku".
Dan
--
Dan Lukes SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz
More information about the Users-l
mailing list