nepristupnost stroje

Dan Lukes dan at obluda.cz
Wed Jan 30 10:20:46 CET 2008


Antonin Vecera napsal/wrote, On 01/30/08 07:41:
> Pokud na tento pc zacnu po LAN kopirovat nejaky velky soubor, tak
> 1. se na nej nelze prihlasit pres ssh
> 2. nelze provest vypis adresare (ls)
> 
> Pricemz pokud se jeste pred zapocetim kopirovani na nej prihlasim pres
> ssh a spustim si tam "top", tak ten behem onoho kopirovani bezi bez
> problemu.

> Jevi se mi to tak, ze ten souvisly zapis si urve disk jen pro sebe.

	Nikoliv "jen". Jde proste o dva konkurencni procesy, ktere vyuzivaji disk.

> ocekaval bych, ze diky multitaskingu se o ten disk ty ulohy dokazou podelit.

	Ony se o nej deli. Bohuzel, ne v takovem pomeru, v jakem bysis pral. Na 
urovni pristupu k IO neexistuje zadna prioritizace. Kdyz budes mit dva 
procesy zadajici pristup k disku, budou se o nej delit rovnym dilem. A 
nevyresis to prioritami na urovni scheduleru - ten prideluje procesor. 
Jenze toho je v tomhle pripade dost. Aplikace A pozada o praci s diskem 
a ceka na jeji dokonceni - dost dlouho, aby si o operaci s diskem 
pozadala aplikace B a take usnula pri cekani. I kdyby jedna z nich mela 
prioritu nejvyssi a druah nejnizsi, pri praci s diskem se budou stridat 1:1

	Ono to ale ve skutecnosti bude jeste daleko horsi. Mezi aplikaci a 
diskem je fronta (buffer), ktery umozni aplikaci zadat i takovy IO 
pozadavek, ktery vyusti ve vic low-level IO operaci.

	Pokud jedna aplikace provadi jeden ohromny zapis, kdezto druha aplikace 
provadi vetsi mnozstvi izolovanych mensich cteni (nebo i zapisu) tak se 
budou delit patrne v daleko horsim pomeru nez 1:1. Aplikace A totiz 
narve do bufferu pozadavku "co to da". Pak tam aplikace B narve svuj 
jeden (dva, tri) pozadavky. Aplikaci A zastavi limit na velikost buferu, 
aplikaci B to, ze ona v tehle chvili vic dat nechce a tak ceka na 
vyrizeni. System se postupne probije tou spoustou pozadavku aplikace A 
(coz trva dlouho, obe aplikace stoji). Uvolni aplikaci A k behu a 
vyrizuje pozadavky aplikace B. To sice trva podstatne kratsi dobu (je 
jich malo), ale presto dost dlouho na to, aby aplikace A znovu naplnila 
frontu "co to da" a zablokovala se. Aplikace B zpracuje vysledek sve 
operace a zase si do fronty da svych par pozadavku - a znovu bude cekat 
dlouho, nez se na ne dostane rada.

	Jeste ke vsemu, vyrizovani jednotlivych operaci trva vyrazne dele - 
pokud nezapisuji do kontinualni oblasti disku, pak se mezi pozadavky 
seekuje. Dokonce i kdyz zapisujes do kontinualniho bloku, je 
pravdepodobne, ze nez zadas zapis do dalsiho sektoru, sektor z pod hlavy 
"ujede" a prestoze operujeme hned s dalsim, musime cekat nez se nam 
znovu dostane pod hlavu. Castecne to eliminuje moznost zadat k zapisu 
vice sektoru najednou, takovehle bloky jsou ale pomerne male.

	Jinymi slovy - ty procesy se o pristup k disku deli. Dokonce v jistem 
ohledu spravedlive (ta aplikace, ktera disk potrebuje vic ho take vic 
dostava). Ale nedeli se o nej tak, jak by ti bylo prijemejsi.

	WC tenhle problem vyrazne omezuje - prinejmensim minumalizuje 
rotational-delay a seekovani, ktere tvori podstatnou slozku "cekani".

> Nevi nahodou nekdo, jestli to jde nekde vyladit tak, aby se ten
> stroj/disk nestaval nepristupnym???

	Pravdepodobne by slo prepsat diskovy sybsystem a ovladace tak, aby se 
choval za tehle podminek lepe. On je napsany tak, aby se choval dobre v 
typickych podminkach, ktere ale nejsou tvuj pripad.

	Osobne si myslim, ze to vyladit pujde. Nejdriv zapnes zpatky to WC. A 
pak zacneme resit, co jsi se jeho vypnutim snazil vyresit a najdeme 
vhodnejsi reseni TOHOTO problemu.


						Dan




More information about the Users-l mailing list