Linux vs. FreeBSD
Henryk Paluch
paluch na bimbo.fjfi.cvut.cz
Sobota Duben 3 22:55:38 CEST 1999
>> : obcas prijde trochu vic posty a dam ls pres
>> /var/spool/mqueue : s vice jak 20 000
>> soubory,muzu si jit dat kafe.
>> :
>> Pockej na ext3 - ten ma mit adresare ve
>
Ahoj lidi!
malou zmenou v tunable parameters v /proc-u se mi povedlo
drasticky urychlit vypis rozsahlych adresaru:
Klicove je inode-max v /proc/sys/fs:
$ uname -a
Linux localhost.localdomain 2.2.5 #1 Fri Apr 2 22:10:03 CEST 1999 i686 unknown
$ ./ftest 7000 # 7000 souboru
$ ls -1 test/ | wc -l
7000
$ time ll test/ > /dev/null
0.44user 0.07system 0:00.50elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (266major+458minor)pagefaults 0swaps
(asi 1 sekunda)
$ ./ftest 8000 # 8000 souboru
$ alias ll='ls -l'
$ time ll test/ > /dev/null
0.48user 7.77system 0:08.28elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (270major+514minor)pagefaults 0swaps
(fuj! najednou je to 8 sekund)
# cat /proc/sys/fs/inode-max
8192
# echo 10000 > /proc/sys/fs/inode-max
$ time ll test/ > /dev/null
0.47user 0.54system 0:01.01elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (266major+514minor)pagefaults 0swaps
(wow! opet 1 sekunda)
--- a ted onech 20000 souboru: ---
$ ./ftest 20000
$ time ll test/ > /dev/null
1.31user 46.78system 0:48.17elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (271major+1194minor)pagefaults 0swaps
(fuj! skoro 50 sekund)
# echo 24000 > /proc/sys/fs/inode-max
$ time ll test/ > /dev/null
1.27user 0.23system 0:01.50elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (266major+1194minor)pagefaults 0swaps
(2 sekundy! - to uz je docela slusne... nam (tucnakum) by to melo stacit)
Jen nevim, proc tech inodu musi byt o nekolik tisic vic (jeste pri
echo 22000 to bylo pomale....)
ftest: (neumim PERL! Ja jsem Vas varoval...)
----------------------------------
#!/usr/bin/perl
mkdir "test", 0755;
chdir "test";
print "NO:", $#ARGV,"\n";
if ($#ARGV != 0)
{
print "Usage: ftest number_of_files\n";
exit 1;
}
for($i=0;$i<$ARGV[0];$i++)
{
open(TO,">$i");
close(TO);
print $i,",";
}
----------------------------------
S pozdravem
Henryk Paluch, paluch na bimbo.fjfi.cvut.cz
Další informace o konferenci Linux