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