Posted By: snake () on 'CZunix'
Title:     Re: WriteCache u SW raidu?
Date:      Fri Nov 30 01:50:26 2007

> Kdyz to bezi se zapnoutou write cache na diskach tak se vykon pohybuje kolem
> 60MB/sec. Kdyz ji vypnu tak to klesne na 30MB/sec. Je mi to trochu zahadou 
> proc to klesne tak brutalne. Testuju zapisem 20GB nul pomoci dd takze bych 
> cekal ze to bude v podstate linearni tok dat. Dokaze tohle nekdo vysvetlit?

Jen tipuji: kdyz mas vypnutou diskovou cache (ja ani nevedel, ze to jde), pak 
disk musi cekat pro zapis na konkretni misto az na dobu, kdy bude plotna
spravne natocena. Pokud pri presunu o stopu vedle hlavicka najede na druhy 
sektor misto prvniho v ramci stopy, musi se pockat cela otacka, nez lze zacit 
zapisovat data primo z pameti do disku pomoci DMA. Kdyby tam byla cache, 
ulozi si ten jeden sektor do pameti, druhy az posledni zapise bez potizi 
synchronne a nakonec zapise jeste ten prvni (a opet se posune na dalsi 
track). Takze mas misto jedine otacky otacky dve... Presneji misto jedine a 
drobounky kousek mas dve a jeste mensi kousek. Otacka trva daleko dele nez 
track to track seek (ten se pohybuje typicky kolem 1 az 1,5 ms, rychlost plne 
otacky si spocitej sam podle RPM sveho disku)... 

Netvrdim ale, ze nejsem treba naprosto mimo...

> Dalsi vec kterou resim je jestli je bezpecny provozovat ten RAID se zapnutou
> write cache. Bojim se ze po vypadku napajeni bych mohl skoncit s dosti 
> nekonzistentnim polem. K tomuhle jsem kupodivu ani nenasel moc zminek.

"No a?" Jestli jsi schopen se vyporadat s padlym diskem, jiste jsi schopen 
vyporadat se i s nekonzistenci vzniklou pri vypadku proudu, ne? IMHO je to 
uplne stejne velky problem, jako kdyz Ti vypadne proud na jedinem 
write-cachovanem disku. Jen holt s tim rozdilem, ze tady budes muset jeste 
pred opravou filesystemu sesynchronizovat samotne disky...

snake 

P.S. Jestli si to dobre pamatuji, tak databaze ci podobne critical aplikace 
zapisuji data tak, ze si zapis odfajfkuji teprve az po potvrzeni flushe. Cili 
cachovani je vyuzito, ale dulezita data jsou bezpecne na disku i pri vypadku. 
Kdyby se neflushovalo, vykon bude samozrejme jeste daleko vyssi, kdyz ale 
vypnu cachovani, pojedu naopak jeste pomaleji. Nevidim ale duvod, proc bych 
nemohl cachovat databazova data i pri zapise, napr. u dlouhe transakce, co 
toho bude hodne zapisovat. Flush je nutne udelat teprve v ramci commitu 
(tipuji, ze nejmene 2x, tesne pred nim a pak v ramci samotneho commitovani)...

Search the boards