Redhat Linux 7.0
Linux version 2.2.16-22 (root@porky.devel.redhat.com) (gcc version egcs-2.91.66
19990314/Linux (egcs-1.1.2 release)) #1 Tue Aug 22 16:49:06 EDT 2000
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 5
model name : Pentium II (Deschutes)
stepping : 1
cpu MHz : 398.273
cache size : 512 KB
fdiv_bug : no
hlt_bug : no
sep_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36
mmx fxsr
bogomips : 794.62
Scripts Used for testing
Client Test Script
#!/usr/bin/perl
@threadnums = (1,2,4,8,16,32);
@loopnums = (1,100,1000,10000,100000,500000);
$base = 10010;
$checks = 10000;
$ip="127.1";
foreach $threadnum (@threadnums)
{
foreach $loopnum (@loopnums)
{
for($i=0;$i<($threadnum *2) -1;$i++)
{
print("./client $ip $base &\n");
system("./client $ip $base &");
}
printf("./client $ip $base\n");
system("./client $ip $base");
sleep(5);
$base++;
}
}
Server Test Script
#!/usr/bin/perl
@threadnums = (1,2,4,8,16,32);
@loopnums = (1,100,1000,10000,100000,500000);
$base = 10010;
$checks = 10000;
unlink("thread.results");
foreach $threadnum (@threadnums)
{
foreach $loopnum (@loopnums)
{
$temp = int($checks / $loopnum) + 200;
print("./server $base $threadnum $loopnum $temp >> thread.results\n");
system("./server $base $threadnum $loopnum $temp >> thread.results");
$base++;
}
}
Results of Testing
Loops: 1 Threads: 1 Dispatches/sec: 526.660
Loops: 100 Threads: 1 Dispatches/sec: 533.225
Loops: 1000 Threads: 1 Dispatches/sec: 267.247
Loops: 10000 Threads: 1 Dispatches/sec: 55.794
Loops: 100000 Threads: 1 Dispatches/sec: 6.596
Loops: 500000 Threads: 1 Dispatches/sec: 1.325
Loops: 1 Threads: 2 Dispatches/sec: 666.329
Loops: 100 Threads: 2 Dispatches/sec: 16.175
Loops: 1000 Threads: 2 Dispatches/sec: 247.148
Loops: 10000 Threads: 2 Dispatches/sec: 64.766
Loops: 100000 Threads: 2 Dispatches/sec: 6.664
Loops: 500000 Threads: 2 Dispatches/sec: 1.328
Loops: 1 Threads: 4 Dispatches/sec: 575.043
Loops: 100 Threads: 4 Dispatches/sec: 966.688
Loops: 1000 Threads: 4 Dispatches/sec: 381.330
Loops: 10000 Threads: 4 Dispatches/sec: 65.346
Loops: 100000 Threads: 4 Dispatches/sec: 6.775
Loops: 500000 Threads: 4 Dispatches/sec: 1.375
Loops: 1 Threads: 8 Dispatches/sec: 616.021
Loops: 100 Threads: 8 Dispatches/sec: 339.300
Loops: 1000 Threads: 8 Dispatches/sec: 304.173
Loops: 10000 Threads: 8 Dispatches/sec: 67.703
Loops: 100000 Threads: 8 Dispatches/sec: 6.781
Loops: 500000 Threads: 8 Dispatches/sec: 1.433
Loops: 1 Threads: 16 Dispatches/sec: 617.017
Loops: 100 Threads: 16 Dispatches/sec: 496.465
Loops: 1000 Threads: 16 Dispatches/sec: 346.666
Loops: 10000 Threads: 16 Dispatches/sec: 61.634
Loops: 100000 Threads: 16 Dispatches/sec: 6.854
Loops: 500000 Threads: 16 Dispatches/sec: 1.505
Loops: 1 Threads: 32 Dispatches/sec: 1053.896
Loops: 100 Threads: 32 Dispatches/sec: 381.208
Loops: 1000 Threads: 32 Dispatches/sec: 313.846
Loops: 10000 Threads: 32 Dispatches/sec: 89.955
Loops: 100000 Threads: 32 Dispatches/sec: 8.458
Loops: 500000 Threads: 32 Dispatches/sec: 2.130
Source Code