Sziasztok!
Olyan linuxos fájlrendszerre vagy kernelbeállításra vagy egyéb megoldásra lenne szükségem, ami az ls -laR -t nagyon gyorssá teszi tízezer könyvtárra és egy egymillió fájlra (nem egyenletes eloszlásban). Az optimális megoldás futásideje összemérhető kéne, hogy legyen azzal az idővel, amit az ls -laR hatására a kernel lemezolvasással tölt, de seekelés nélkül, tehát mondjuk max 10 másodperc.
Úgy sejtem, hogy az ls -laR -ből az -l kapcsoló a lassú, mert az minden fájlra hív egy stat()-ot, és mivel az egyes fájlok inode-jai nincsenek közel egymáshoz a lemezen (legalábbis ext3-on, ext4-en és reiserfs-en), ezért minden egyes stat()-hoz seekelni kell, ezért lassú. Az inode-ok szekvenciális egymás mellé pakolásával az ls -laR sokat gyorsulhatna. Van ilyen fájlrendszer vagy beállítás?
Kösz:
pts
- 4768 megtekintés
Hozzászólások
gyors diszk, sok ram a file cache-nek első körben
- A hozzászóláshoz be kell jelentkezni
Nincs lehetőségem változtatni a hardveren. De ha 10-szeresére gyorsítanám a diszket, akkor sem végezne 10 másodperc alatt ext3-an, ext4-en vagy reiserfs-en. Olyan szoftveres megoldást keresek, ami nem seekel minden stat()-nál.
Mit értesz az alatt, hogy sok ram a file cache-nek? Van elég RAM a gépben, és én szíves-örömest adnék neki annyi RAM-ot, amennyi csak kell neki ahhoz, hogy az inode-ok mindig a fizikai memóriában maradjanak, tehát sose kelljen a diszkhez fordulni egy stat() miatt. De mit és hogyan kell beállítani, hogy ez történjen? Az önmagában nem jó megoldás, hogy tegyek még több RAM-ot a gépbe, mert akármennyit is teszek, néhány DVD image átmásolása után az összes RAM-ot betöti a cache, és az inode-ok kikerülnek a fizikai memóriából. Én azt szeretném, hogy az inode maradjon bent örökre (pontosabban umountig vagy az inode törléséig).
- A hozzászóláshoz be kell jelentkezni
"Úgy sejtem, hogy az ls -laR -ből az -l kapcsoló a lassú, mert az minden fájlra hív egy stat()-ot, és mivel az egyes fájlok inode-jai nincsenek közel egymáshoz a lemezen (legalábbis ext3-on, ext4-en és reiserfs-en), ezért minden egyes stat()-hoz seekelni kell, ezért lassú."
$ touch foo bar
$ strace -o 1 ls foo bar
$ strace -o 2 ls -l foo bar
$ vimdiff 1 2
- A hozzászóláshoz be kell jelentkezni
Én is így számolnám meg, hogy az ls -l többet statol, mint a sima ls, a kérdéseimre viszont nem kaptam választ.
- A hozzászóláshoz be kell jelentkezni
Akkor számold is meg, hátha hirtelen megváltozik a kérdésed...
- A hozzászóláshoz be kell jelentkezni
Mihez kellene ez?
--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!
- A hozzászóláshoz be kell jelentkezni
Elsősorban rsync (vagy hasonló) alapú backuphoz kellene. Egy ilyen backup szoftver a forrásoldalon végigigstatolja a teljes fájlrendszert mtime- stb. változásokat keresve. Ha nem változott semmi, akkor is 10 percig tart a végigstatolás. Ezt akarom 10 másodpercre rövidíteni.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Köszi, ez jónak tűnik, itt találtam bővebb leírást róla: http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.7/2…
- A hozzászóláshoz be kell jelentkezni
Állítólag az ntfs és az xfs is tud "file change log" -ot, de egyetlen olyan backup programot vagy tool-t nem láttam ami kiolvasná ezt.
- A hozzászóláshoz be kell jelentkezni