"qmail is a secure, reliable, efficient, simple message transfer agent. It is meant as 
a replacement for the entire sendmail-binmail system on typical Internet-connected 
UNIX hosts", yeah,yeah....but in my feeling, it is not so fast at all.(I have use 
qmail for nearly 1 year!)

And following is the data of my test:

Server            MTA              OS           Time spend(1000 letters)  Server 
Hardware       Server status
-----------------------------------------------------------------------------------------------------------
202.96.237.177   Qmail1.03     FreeBSD3.3        314  seconds        K62 350,64MRam 4G 
IDE      little load
202.96.210.242   Sendmail8.10  FreeBSD3.2        202  seconds        PII450*2,1GRam 
36G SCSI    little load
202.101.18.155   Qmail1.03     FreeBSD3.2        555  seconds        
PII450*2,512MRam,36G SCSI  heavy load
202.101.18.157   Qmail1.03     FreeBSD3.2        404  seconds        
PII450*2,512MRam,36G SCSI  No any load

(Average value of 3 tests.)

All letters was sent to MTA by port 25,and to a local address.


The data show:
1. Qmail is more slow  than sendmail;
2. Qmail can run more fast in some worm-eaten computer. (Impossible? but it is really!)

WHY ?  WHY ?

And the following is my test program:

/*  speed.c  */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "connect.c"

void main()
{
  int i;
  time_t time1,time2;
  int handle;
  char s[1024];
  FILE *f;

  time(&time1);
  printf(" Now test start at %d...\n",time1);
  handle=opensockets("127.0.0.1",25);
  readsockets(handle,s);
  writesockets(handle,"helo localhost");
  readsockets(handle,s);
  for (i=1;i<=1000;i++)
  {
    if (i%100==0) printf("send letter %d...\n",i);
    writesockets(handle,"mail from:<>");
    readsockets(handle,s);
    writesockets(handle,"rcpt to:<nothisaddr@hostname>");   //please change host to 
local hostnae
    readsockets(handle,s);
    writesockets(handle,"data");
    readsockets(handle,s);
    f=fopen("speed.c","r");
    while (!feof(f))
    {
      fscanf(f,"%s",s);
      writesockets(handle,s);
    }
    fclose(f);
    writesockets(handle,".");
    readsockets(handle,s);
    if (strstr(s,"250 ok")==NULL) printf("error at %d!\n",i);
  }
  writesockets(handle,"quit");
  readsockets(handle,s);
  close(handle);
  time(&time2);
  printf("End at %d,total use %d seconds.\n",time2,time2-time1);
}



            Hotdog
            hotdog#soim.com

Reply via email to