Portál AbcLinuxu, 5. května 2025 08:28
time perl -e 'foreach my $i (1..35000) { mkdir($i) or die $!; } '
Dík za tip, na noťasu mam výsledek
$ time perl -e 'foreach my $i (1..35000) { mkdir($i) or die $!; } ' 0.02user 3.31system 0:23.92elapsed 13%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+421minor)pagefaults 0swaps- je to ok?
Bez chyby doběh ... paseku mi tu ten skript udělal pěknou ... a jinak mam reiserfs asi 3.6 v def. konfiguraci.
0.20s user 14.00s system 41% cpu 34.328 totalMoze to byt aj mierne odlisnym HW. Ale na druhej strane toto cislo nic neznamena. Na vytazenych serveroch je dolezity vykon pri paralelnych a opakovanych citaniach/zapisoch. Btw.
time /bin/ls -la > /dev/null
na tomto adresari s 35 tis. podadresarmi za 1.2 - 1.9 sec.
Skusme este toto:
mkdir x; cd x; time perl -e 'foreach my $i (1..150000) { mkdir($i) or die $!; } '; \ time /bin/ls -la > /dev/null ; time /bin/ls -la > /dev/null cd .. time rm -rf x > /dev/nullVysledok:
perl -e 'foreach my $i (1..150000) { mkdir($i) or die $!; } ' \ 0.77s user 51.86s system 30% cpu 2:53.09 total /bin/ls -la > /dev/null 1.88s user 4.38s system 43% cpu 14.298 total /bin/ls -la > /dev/null 1.52s user 1.38s system 86% cpu 3.337 total rm -i -v -rf x > /dev/null 5.30s user 63.94s system 39% cpu 2:54.92 totalMa niekto niekde ext3 filesystem? ;)
Já bych to svaloval na těch 1.5GB RAM, co vy?
$ free -m total used free shared buffers cached Mem: 1390 1294 95 0 57 467 -/+ buffers/cache: 768 621 Swap: 0 0 0
Nechápu tak úplně smysl toho vašeho smajlíku. 150000 podadresářů sice na ext3 nevytvoříte (vzhledem k 16-bitové hodnotě link count), ale pro 31900 mi to vychází takto:
# ext3 real 0m5.515s user 0m0.012s sys 0m1.884s real 0m0.790s user 0m0.372s sys 0m0.408s real 0m0.425s user 0m0.264s sys 0m0.164s real 0m11.698s user 0m0.068s sys 0m11.301s # XFS real 1m37.638s user 0m0.060s sys 0m3.560s real 0m0.757s user 0m0.300s sys 0m0.456s real 0m0.374s user 0m0.200s sys 0m0.172s real 1m26.941s user 0m0.276s sys 0m5.764s
Oba filesystémy byly vytvořeny s defaultními parametry, pouze u ext3 jsem použil '-m 0
' (což by ale na rychlost nemělo mít vliv). Výsledky XFS by asi šlo nastavením parametrů vylepšit, ale i tak bych řekl, že s tou pomalostí ext3 to nebude až tak strašné, jak naznačujete…
time perl -e 'foreach my $i (1..150000) { open(F, ">$i") or die $!; close(F); } '; time /bin/ls -la . > /dev/null ; time /bin/ls -la . > /dev/null ; perl -e 'foreach my $i (1..150000) { open(F, ">$i") or die $!; close(F); } ' \ 1.09s user 9.92s system 11% cpu 1:34.37 total /bin/ls -la . > /dev/null 1.49s user 2.14s system 63% cpu 5.712 total /bin/ls -la . > /dev/null 1.48s user 1.34s system 73% cpu 3.812 totalP.S.: /bin/ls je pustene po sebe 2x schvalne, aby sa ukazalo cahovanie dat.
Tady jsou výsledky pro 150000 souborů (nevytvářel jsem je ale tím perlovým skriptem, napsal jsem si na to prográmek v C):
ext3: real 0m5.717s 0m2.550s 0m2.516s 0m3.661s user 0m0.164s 0m1.664s 0m1.700s 0m0.052s sys 0m5.076s 0m0.884s 0m0.816s 0m3.604s XFS: real 8m12.059s 0m2.472s 0m1.936s 7m41.173s user 0m0.312s 0m1.192s 0m1.072s 0m0.224s sys 0m17.365s 0m1.272s 0m0.864s 0m16.457s
Ty výsledky XFS při vytváření a mazání souborů se mi nějak nelíbí, asi to ještě vyzkouším na ramdisku.
$ time perl -e 'foreach my $i (1..150000) { open(F, ">$i") or die $!; close(F); } '; real 0m17.068s user 0m0.676s sys 0m8.321s $ time /bin/ls -la . > /dev/null ; time /bin/ls -la . > /dev/null ; real 0m1.604s user 0m1.268s sys 0m0.280s real 0m1.606s user 0m1.336s sys 0m0.272s
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.