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