Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Subject: Re: info requested
From: Wietse Venema (wietseporcupine.org)
Date: Thu Aug 24 2000 - 11:21:40 CDT

And here's the data on a single-disk machine with Postfix.


Subject: Re: SCSI, U2W in particular?, and poor performance...
To: postfix-userspostfix.org (Postfix users)
X-Time-Zone: USA EST, 6 hours behind central European time
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Message-Id: <20000305212017.03D454563Espike.porcupine.org>
Date: Sun, 5 Mar 2000 16:20:17 -0500 (EST)
From: wietseporcupine.org (Wietse Venema)

Justin Robertson:
> First off, it didn't send 1024 messages in 2 seconds. It was 1024 files
> using fsstone creation and deletion of files...

On ext2fs with default settings, the fsstone number of files/second
is largely a matter of CPU speed and of available memory. Hardly
anything is written to disk in those 2 seconds.

> it took 44 seconds to send 1000 15k emails.

Let me demonstrate how these numbers depend on conditions.

With my 450MHZ Redhat 6.1 box with Ultra 2 LVD SCSI (*) and Postfix
19991231-pl04 installed as per Postfix defaults, pumping in 1000
15k emails via SMTP takes 162 seconds elapsed time. When I revert
to the default Linux async directory updates that becomes 93 seconds.
When in addition to that I turn off the default synchronous syslog
writes, the elapsed time goes down to 12 seconds. With async syslog
and with sync directory updates, the elapsed time to pump in the
mail is 85 seconds.

(*) Adaptec 2940U2W, Seagate Barracuda ST39175LW, connected by a
twisted-pair LVD cable.

Summarized in a table, the time to pump in 1000 15kbyte messages
into Postfix on a 450MHZ Redhat 6.1 box with Ultra-2 Wide LVD SCSI:

    directory syslog seconds
    sync sync 162
    async sync 93 (1)
    sync async 85 (2)
    async async 12

(1) Indicates how I expect other mailers to run on Linux.
(2) Is how I would run Postfix if I had to use Linux.

My FreeBSD 2.2.8 Thinkpad 600 does the same test in 69 seconds
elapsed time. I would hope that FreeBSD is faster than that on the
Ultra 2 LVD SCSI disk. However, I'm not going to wipe out Linux
just this test. I need the machine for running VMware.

Command used for stress test:

 /usr/bin/time ./smtp-source -m1000 -s20 -l15360 -c -tnulllocalhost localhost

How to toggle sync/async writes on Linux:

 chattr -R +S /var/spool/postfix turns on safe directory updates (and more)
 chattr -R -S /var/spool/postfix turns off sync writes (Linux default)
 mail.* -/var/log/maillog turns off sync syslog writes
 mail.* /var/log/maillog turns on sync syslog writes (Linux default)