You are on page 1of 8

Performanse diskova i sistema datoteka laboratorijska veba 8 (VISER SS 2011/2012)

MERENJE PERFORMANSI LINUX SISTEMA DATOTEKA


Zdravko Nedi, Borislav orevi, Milo Rokni, 2012.

UNIX/LINUX sistemi datoteka


Osnovna struktura svih UNIX sistema datoteka je slina. Tipian UNIX sistem datoteka ematski je
prikazan na slici 3.5:

i-node
tip objekta

Superblock
i-node tabela

pristupna prava

i-node 0

broj hard linkova

i-node 1
.. .
.. .
.. .

user ID
group ID
veliina datoteke

access time
mod time
i-node time

file-info
ime datoteke

i-node broj

i-node n-1
blokovi sa podacima
direktorijumski blokovi
blokovi pokazivaa
data block 0 (direktorijum)

direktan pokaziva 1

data block 1 (podaci)

direktan pokaziva 2
.. .
.. .
.. .
indirektan pokaziva

data block 2 (podaci)

data block 3 (pokazivai)


.. .
.. .
.. .

2x indirektan pokaziva

data block n-2 (prazan)

3x indirektan pokaziva

data block n-1 (prazan)

direktorijum
file-info 0
file-info 1
.. .
.. .
.. .
file-info n-1

Slika 3.5 UNIX sistem datoteka

UNIX sistem datoteka ine:

zaglavlje (superblock),

tabela indeksnih vorova (i-node tabela),

blokovi sa podacima (data blocks),

direktorijumski blokovi (directory blocks),

blokovi indirektnih pokazivaa (indirection block).

Superblok (superblock) je zaglavlje sistema datoteka i sadri informacije o sistemu datoteka u


celini, kao to su njegova veliina, tip i zastavica istoe (dirty flag). U superbloku se nalazi
zaglavlje i-node tabele i zaglavlja listi slobodnih i-node vorova i slobodnih blokova za podatke.
Superblokovi svih aktivnih sistema datoteka keiraju se u RAM memoriji raunara i periodino se
upisuju na disk.

Str. 1 / 8

Performanse diskova i sistema datoteka laboratorijska veba 1 (VISER SS 2011/2012)


DISKOVI I DISK INTERFEJSI
Zdravko Nedi, Borislav orevi, Milo Rokni 2012.

U okviru dela sa podacima nalaze se blokovi podataka, direktorijumski blokovi i blokovi


indirektnih pokazivaa. Sadraj regularnih datoteka ini odreeni broj blokova podataka.
Direktorijumi se posmatraju kao specijalne datoteke iji sadraj ine direktorijumski blokovi koji
sadre datoteke, odnosno njihove specijalne informacije (file-info). Direktorijumski blokovi su
tabele sastavljene od odreenog broja file-info struktura, za svaku datoteku koja se tu nalazi. Fileinfo struktura se u literaturi pominje i kao kontrolni blok datoteke - FCB (File Control Block). U
skladu sa teorijom operativnih sistema, file-info struktura predstavlja jedan deo kontrolnog bloka
datoteke. Svaki objekat koji se nalazi u direktorijumu (directory-entry) predstavljen je jednom fileinfo strukturom. Svaka file-info struktura sadri ime objekta kog predstavlja i broj indeksnog vora
kojim je taj objekat u potpunosti opisan. Na ovaj nain je omogueno kreiranje hard linkova.
I-node (indeksni vor) je osnovna struktura UNIX sistema datoteka koja u potpunosti opisuje jedan
objekat. Shodno teorijskom pristupu, indeksni vor je drugi deo kontrolnog bloka datoteke. Svaki
UNIX sistem datoteka ima tabelu indeksnih vorova. I-node sadri sve informacije o objektu koji
opisuje osim imena:

tip objekta (npr. regularna datoteka, direktorijum ili simboliki link) i pristupna prava za tri
vlasnike kategorije,

broj hard linkova na dati objekat,

user ID, odnosno ID korisnika koji je vlasnik objekta,

group ID, odnosno ID grupe korisnika kojoj objekat pripada,

veliinu objekta izraenu u bajtovima,

vreme zadnjeg pristupa objektu (access time) u UNIX vremenskom formatu,

vreme zadnje modifikacije objekta (mod time) u UNIX vremenskom formatu,

vreme zadnje modifikacije indeksnog vora objekta (i-node time) u UNIX vremenskom
formatu,

listu direktnih pokazivaa na blokove sa podacima, koja je dovoljna da se adresiraju prvih 1012 blokova podataka koji ine poetak datoteke (broj zavisi od tipa sistema datoteka),

listu indirektnih pokazivaa (lista pokazivaa na jednostruke, dvostruke i trostruke indirektne


blokove).

Rupe u datotekama
Neki UNIX sistemi datoteka dozvoljavaju kreiranje rupa u datotekama (hole) pomou lseek()
sistemskog poziva. Rupe u datoteci ne zauzimaju prostor na disku, a sistem datoteka ih simulira
odreenim brojem nula. Na ovaj nain se smanjuje broj upotrebljenih blokova podataka za datoteke
koje u svom binarnom obliku imaju velike nizove nula (male binarne datoteke, deljene biblioteke i
neke baze podataka). Rupe se implementiraju upisivanjem specijalnih vrednosti na mestima adresa
blokova podataka u indirektnim pokazivaima. Te vrednosti znae da ni jedan blok podataka nije
upotrebljen za taj deo datoteke, ve da se na tom mestu nalazi rupa.

Performanse diskova i sistema datoteka laboratorijska veba 8 (VISER SS 2011/2012)


MERENJE PERFORMANSI LINUX SISTEMA DATOTEKA
Zdravko Nedi, Borislav orevi, Milo Rokni, 2012.

Konvencija o imenima objekata sistema datoteka


U UNIX sistemima datoteka imena datoteka i direktorijuma formiraju se na sledei nain:

Dozvoljeni karakteri su: sva velika slova (A-Z), sva mala slova (a-z), cifre (0-9), crta (-),
underscore (_) i taka (.). Opcije UNIX komandi poinju jednom (-) ili dvema crtama (--), tako da
imena objekata ne treba poinjati tim karakterima. Ukoliko ime objekta poinje takom (.), on se
smatra skrivenim i moe se videti pomou komande ls samo ako je zadata s parametrom -a (all).
Datoteke koje slue za inicijalizaciju i podeavanje radnog okruenja najee su skrivene
(.bash_profile, .bash_history);

Zabranjeni karakteri su: ! ` ; : / \ $ < > ( ) [ ] { } ~

Ukoliko se umesto imena direktorijuma u apsolutnoj putanji navede ~ korisnik e biti


preusmeren na home direktorijum. Na primer, komanda less ~/myfile.txt prikazae sadraj datoteke
myfile.txt koja se nalazi u home direktorijumu korisnika koji je komandu zadao, bez obzira na
tekui direktorijum.
UNIX u komandnoj liniji nema pojam ekstenzije, ve samo imena objekta. Datoteke nmap.tar.gz i
sample.mpg posmatraju se kao regularne datoteke, bez obzira na sadraj, pri emu se tip datoteke
moe odrediti pomou komande file. Pojam ekstenzije se uvodi pod grafikim radnim okruenjem,
u smislu asociranja datoteka sa programom na osnovu ekstenzija (npr. datoteka sa ekstenzijom doc
bie otvorena u Open Office Writeru, a ne u C kompajleru). Direktorijumi najee nemaju
ekstenzije, iako ne postoji neko pravilo kojim bi se to eksplicitno zabranilo.
Maksimalne duine imena datoteka i direktorijuma odreene su sistemskom promenljivom
NAME_MAX na osnovu tipa sistema datoteka na kom se objekat nalazi. Ova promenljiva ne moe
se promeniti, niti videti pomou komandi env ili echo, ali je zato svaki korisnik moe videti
pomou getconf sistemskog poziva.
# getconf NAME_MAX /
255

Ukoliko se ova komanda pokrene dvaput nad direktorijumima koji se nalaze na istom sistemu
datoteka, isti rezultat se vraa u oba sluaja. Ukoliko se direktorijumi nalaze na razliitim tipovima
sistema datoteka, npr. ukoliko je /etc na ext2 sistemu datoteka, a /public na FAT 8.3 sistemu,
komande getconf NAME_MAX /etc i getconf NAME_MAX /public vratie razliite rezultate.

Sistemi datoteka sa dnevnikom transakcija (Journaling)


Prilikom podizanja operativnog sistema proverava se integritet sistema datoteka. Gubitak integriteta
najee se javlja kao posledica nasilnog zaustavljanja sistema, odnosno promena u objektima
sistema datoteka koje nisu blagovremeno aurirane u tabeli indeksnih vorova, i moe za posledicu
imati gubitak podataka. Opasnost od gubitka podataka umanjuje se uvoenjem dnevnika transakcija
koji prati aktivnosti vezane za promenu meta-data oblasti, odnosno i-node tabele, i objekata sistema
datoteka. Dnevnik (journal, log) se aurira pre promene sadraja objekata i prati relativne promene
u sistemu datoteka u odnosu na poslednje stabilno stanje. Transakcija se zatvara po obavljenom
upisu i moe biti ili u potpunosti prihvaena ili odbijena. U sluaju oteenja, izazvanog npr.
nepravilnim gaenjem raunara, sistem datoteka se moe lako rekonstruisati povratkom na stanje
poslednje prihvaene transakcije.
Novije verzije Linux kernela ukljuuju podrku za rad sa visokoperformansnim journaling
sistemima datoteka, poput ext3, ReiserFS, XFS i JFS sistema datoteka.

Str. 3 / 8

Performanse diskova i sistema datoteka laboratorijska veba 1 (VISER SS 2011/2012)


DISKOVI I DISK INTERFEJSI
Zdravko Nedi, Borislav orevi, Milo Rokni 2012.

Ext3 sistem datoteka i reimi voenja dnevnika transakcija


Sistem datoteka ext3 predstavlja ext2 sistem datoteka nadograen podrkom za journaling. Jedan od
osnovnih koncepata u dizajnu je potpuna kompatibilnost sa prethodnom verzijom - prelazak sa ext2
na ext3 ostvaruje se jednostavnim kreiranjem dnevnika, koji vodi evidenciju o izvrenim
transakcijama, ime se umanjuje opasnost od gubitka podataka. Dnevnik transakcija umanjuje
performanse sistema, pri emu je pad performansi pri praenju celokupne aktivnosti u sistemu
datoteka znatno vei od pada performansi pri praenju aktivnosti meta-data oblasti. Ext3 se moe
koristiti ukoliko je kernel preveden sa podrkom za ext3, to je podrazumevano u veini novijih
distribucija Linuxa: Red Hat 7.2 i novije, SuSE 7.3 i novije. Tvorac ext3 sistema datoteka je Dr
Stephen Tweedie.
U ext3 sistemu datoteka prisutna su tri reima voenja dnevnika transakcija: journal, ordered i
writeback.

Journal je reim praenja svih promena u sistemu datoteka, kako u meta-data oblasti tako i u
objektima-datotekama, ime se pouzdanost sistema datoteka znatno uveava na raun performansi.
Redundansa koju ovaj reim rada unosi je velika, ali svakako na raun performansi.

Ordered je reim praenja promena u meta-data oblasti, pri emu se promene u objektima
sistema datoteka upisuju pre auriranja i-node tabele. Ovo je podrazumevani reim rada dnevnika,
koji garantuje potpunu sinhronizaciju objekata sistema datoteka i meta-data oblasti. U odnosu na
journal, ovaj reim karakterie manja redundansa i vea brzina rada.

Writeback je reim praenja promena u meta-data oblasti, pri emu se i-node tabela moe
aurirati pre upisa promena u objekte sistema datoteka. Ovo je najbri reim rada ali ne garantuje
konzistenciju meta-data oblasti, odnosno sinhronizaciju objekata sistema datoteka meta-data oblasti,
to moe dovesti do neprijatnih situacija u sistemu datoteka kao to su pojave nove i stare verzije
datoteke itd.

Reiser FS
Jedan od prvih sistema datoteka sa journaling opcijom je ReiserFS, verzija 3.6.x (prisutna u
Linux kernelima poev od verzije 2.4). ReiserFS, koji je ime dobio po tvorcu, Hansu Reiseru,
znaajno poveava performanse pri radu sa malim datotekama (small file performance), koje su kod
ostalih journaling sistema datoteka veoma slabe. Brojni testovi pokazuju da je ReiserFS 8 do 15
puta bri od ext2 pri radu sa datotekama manjim od 1KB. Dodatno, ReiserFS razreava problem
interne fragmentacije ime se poveava efikasnost iskorienja diskova. Ovako visoke performase
pri radu sa malim datotekama ReiserFS postie na osnovu optimizovanog B+ stabla (jedno po
sistemu datoteka) i dinamike alokacije indeksnih vorova (za razliku od fiksne alokacije i-node
koju koristi ext2). Dodatno, ReiserFS koristi promenljivu veliinu sistemskog bloka, a male
datoteke se upisuju u svoj direktorijum zajedno sa svojom file-info strukturom. U dnevniku se
auriraju samo promene u meta-data oblasti.
Loe osobine ReiserFS reflektuju se pri radu sa upljim datotekama (sparse files), gde je ext2
daleko bolji. Takoe, ReiserFS radi sporije sa velikim datotekama u odnosu na ext2.

Performanse diskova i sistema datoteka laboratorijska veba 8 (VISER SS 2011/2012)


MERENJE PERFORMANSI LINUX SISTEMA DATOTEKA
Zdravko Nedi, Borislav orevi, Milo Rokni, 2012.

Za testiranja sistema datoteka na Linux operativnom sistemu koristiemo alat Postmark koji
simulira optereenje servera za elektronsku potu.
PostMark kreira veliki inicijalni skup (pool) sluajno generisanih datoteka na bilo kom mestu
u fajl sistemu. Nad tim skupom se dalje vre operacije kreiranja, itanja, upisa i brisanja datoteka.
Redosled izvoenja operacija je sluajan ime se dobija na verodostojnosti simulacije. Broj
datoteka, opseg njihove veliine i broj transakcija su u potpunosti konfigurabilni. Radi eliminisanja
cache efekata preporuuje se kreiranje inicijalnog skupa sa to veim brojem datoteka (bar 10000) i
izvrenje to veeg broja transakcija.

Opciono: Kompajliranje Postmarka na Linuxu


C/C++ kompajler za Linux se zove gcc. Koristi se iz komandne linije (terminala), koji na
Ubuntuu otvaramo pomou preice Ctrl + Alt + T ili preko menija. Pomou komande cd ~ dolazimo
do korisnikog direktorijuma aktivnog korisnika. U pomenutom direktorijumu je potrebno da se
nalazi datoteka sa izvornim kodom Postmarka sa imenom postmark.c . Njeno postojanje moemo
proveriti komandom ls . Pomenutu datoteku kompajliramo i povezujemo komandom gcc o
postmark postmark.c nakon ega dobijamo fajl postmark koji sadri izvrni oblik aplikacije.
Ignorisati upozorenja (warning) koje daje kompajler.

Poto emo testiranje vriti na praznim particijama, potrebno je prekopirati fajl postmark iz
korisnikog direktorijuma na novu particiju. Kopiranje vrimo iz grafikog okruenja ili putem
komande cp.

Str. 5 / 8

Performanse diskova i sistema datoteka laboratorijska veba 1 (VISER SS 2011/2012)


DISKOVI I DISK INTERFEJSI
Zdravko Nedi, Borislav orevi, Milo Rokni 2012.

Veba 1: Male datoteke


U prvom testu je potrebno da se izvri 50000 transakcija nad skupom od 2000 datoteka
veliine u opsegu 1KB-90KB. Testove izvriti nad ext3 i ReiserFS particijama.

PostMark konfiguracija:
set size
set number
set transactions

1000 90000
2000
50000

Rezultate sauvati u obliku tekstualnog fajla radi kasnijeg poredjenja sa drugim testovima.

Performanse diskova i sistema datoteka laboratorijska veba 8 (VISER SS 2011/2012)


MERENJE PERFORMANSI LINUX SISTEMA DATOTEKA
Zdravko Nedi, Borislav orevi, Milo Rokni, 2012.

Primer rezultata:
datoteka/sec

journal

ordered

writeback

kreiranje dat.

2000

2000

500

kreiranje sa trans.

220

314

1038

itanje

219

312

1035

upis u datoteku

216

308

1035

brisanje

2340

2340

336

brisanje sa trans.

217

310

1045

protok pri itanju i upisu


itanje (MB/sec)

1.3

1.85

6.25

upis (MB/sec)

1.41

6.37

Veba 2: Velike datoteke


U drugom testu je potrebno da se izvri 50000 transakcija nad skupom od 4000 datoteka
veliine u opsegu 1KB-30MB. Testove izvriti nad ext3 i ReiserFS particijama.

PostMark konfiguracija:
set size
set number
set transactions

1000 30000000
4000
50000

Rezultate sauvati u obliku tekstualnog fajla radi kasnijeg poredjenja sa drugim testovima.
Primer rezultata:
datoteka/sec

journal

ordered

writeback

kreiranje dat.

63

85

88

kreiranje sa trans.

itanje

upis u datoteku

154

166

160

brisanje
brisanje sa trans.

Str. 7 / 8

Performanse diskova i sistema datoteka laboratorijska veba 1 (VISER SS 2011/2012)


DISKOVI I DISK INTERFEJSI
Zdravko Nedi, Borislav orevi, Milo Rokni 2012.

protok pri itanju i upisu


itanje (MB/sec)

1.28

1.36

1.36

upis (MB/sec)

1.49

1.57

1.57

Veba 3: Ekstremno male datoteke


U treem testu je potrebno da se izvri 50000 transakcija nad skupom od 4000 datoteka
veliine u opsegu 1B-1KB. Testove izvriti nad ext3 i ReiserFS particijama.

PostMark konfiguracija:
set size
set number
set transactions

1
1000
4000
50000

Rezultate sauvati u obliku tekstualnog fajla radi kasnijeg poredjenja sa drugim testovima.
Primer rezultata:
datoteka/sec

journal

ordered

writeback

kreiranje dat.

277

256

256

kreiranje sa trans.

36

38

38

itanje

36

38

37

upis u datoteku

36

38

38

4992

4992

4992

36

38

38

brisanje
brisanje sa trans.

protok pri itanju i upisu


itanje (KB/sec)

15.44

15.92

15.71

upis (KB/sec)

48.51

50.04

49.36

Analiza rezultata:
Izvrite poredjenje rezultata prethodna 3 testa i objasnite pomou dobijenih rezultata razlike
pomenuta dva sistema datoteka u radu sa razliitim veliinama datoteka. Navedite koji sistem je
pogodniji za razliite vrste namena.

You might also like