[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