[elektro-etc] ext2 directory sok fileal

Móczik Gábor pm_levlista at progzmaster.hu
Fri May 10 22:14:27 CEST 2013


2013.05.10. 20:09 keltezéssel, Vajk Fekete írta:
> kezdem azt gondolni, hogy a kozvetlen meresadatgyujto legyen kicsi,
> egyszeru, kisfogyasztasu, akkor mehet akkurol, es nem problema ha ramban
> gyujti az adatot. aztan ritkabban attolja masnak, aki flash-ra irja, de igy
> nem lesz percenkent iras a flash-en. ha meg kell azonnali adat, akkor kulon
> elkeri a gyujtotol.

Hát, ha van egy központi hely, akkor igen.
Ha nincs, és továbbra is kis fogyasztás kell, akkor opció lehet, hogy 
suspendbe teszed a pendrive-ot, hogy csak amég írsz rá, addig legyen 
áram alatt.

Az ext4-ben delayed allocation funkció is van, utána kellene nézni, hogy 
pontosan hogyan is működik. Az eredeti célja mondjuk az, hogy egy 
nagyobb file-t egyben lehessen kiírni a médiára, amikor már több több 
adat rendelkezésre áll, hogy csökkenjen a fragmentáció és a felesleges 
I/O access.

Persze kérdés, hogy milyen az adattárolás módja. Ha percenként 
keletkezik egy file, akkor elhasználódás szemszögéből tökmindegy, hogy 
percenként megy a flash-re, vagy fél óránként a 30db egyszerre... A file 
limit kérdésből sajnos erre következtetek.

Az a baj, hogy a file create, write, close egy viszonylag komplex 
művelet ahhoz képest, hogy mondjuk csak 20 byte-ot írsz ki egy fájlba.

Szerintem előre allokálni kellene egy nagyobb (bináris) fájlt, és abba 
írni valamilyen növekményes módon, lehetőleg szektor (többszöröse) 
méretű blokkokat, és/vagy flash-re optimálisabb fs-t használni.

Jó hogy van wear-leveling, de ha szektoron átlóg az adatod, akkor 
időnként két szektort kell read-modify-write alá vetni, ha pont 
többszöröse és aligned, akkor csak egyet.

Újabban a HDD-k is fizikailag már 4K szektorral dolgoznak, emulál ugyan 
512B szektort, de magát az fs-t is illik a fizikai szektormérethez 
igazítani, különben a drive R-M-W ciklusokkal játszik. HDD-n csak 
suboptimális a teljesítmény, flash-nál esetleg fokozottabb "kopást" is 
eredményez.



More information about the Elektro-etc mailing list