From: Seth Mattinen on
Victor Duchovni wrote:
> On Sat, Nov 07, 2009 at 01:18:35AM -0800, Seth Mattinen wrote:
>
>> Have you tried a filesystem other than ext3 like Reiser or XFS? The
>> performance of ext3 really, really sucks if you have a lot of files in
>> one directory as a mail spool is bound to have.
>
> This is not so in most cases. Ext3 is just fine for Postfix.
>

The only reason I mention it is because I had a problem with ext3
performance on my Postfix systems. The array controller is a 3ware
9550SX with 256M cache+BBU. Switching to XFS helped my case.

~Seth

From: devel anaconda on


07.11.09, 01:18, "Seth Mattinen" <sethm(a)rollernet.us>:

> devel anaconda wrote:
> >
> > It disables fsync() on each incoming mail. Plus, if I mount my ext3 partition with option commit=30 or even commit=100, can it helps a bit?
> >
> Have you tried a filesystem other than ext3 like Reiser or XFS? The
> performance of ext3 really, really sucks if you have a lot of files in
> one directory as a mail spool is bound to have.
> ~Seth


Yes. I've tried XFS and Reiser4.
Ext3 is fastest.

From: devel anaconda on
07.11.09, 13:41, "Stan Hoeppner" <stan(a)hardwarefreak.com>:


> > Have you tried a filesystem other than ext3 like Reiser or XFS? The
> > performance of ext3 really, really sucks if you have a lot of files in
> > one directory as a mail spool is bound to have.
> I'd stay away from Reiser, for multiple reasons, but XFS would
> definitely be an improvement over ext3. However, changing file systems
> alone isn't going to solve his problem--it won't even double his
> throughput, and he needs something like at least a 3x increase in disk
> throughput at a minimum.
> Unless he changes his filters so as to not write so darn many spool
> files, he will absolutely require more spindles. SSD is an option for
> speed, but I doubt he'd want to spend the money required for 100+ GB of
> SSD. I'd say he needs at least 3 more SCSI drives in a Linux RAID 0
> setup, or 6 more drives in a Linux RAID 10 setup, with XFS atop those.
> IMHO, his next step should be adding a couple of 74GB 10K or 15K RPM
> drives into his two empty disk bays, configure for RAID 0 with XFS atop
> that, and test. If that's still not enough, then he should go with
> something like that cheap 14 drive external array I previously
> mentioned, or SSD if he's flush with cash.


The problem is not in filters. It's not the bottleneck for now. The bottleneck for now is moves messages from incoming to active queue. I'll try to use two other HDD's for RAID0. Thank you.

From: devel anaconda on
06.11.09, 02:32, "Victor Duchovni" <Victor.Duchovni(a)morganstanley.com>:

> > That's why I use postfix and that's why I can't use pre-queued
> > filter. I thought about different scheme, but postfix is the "easy way",
> > so I'm trying speedup things a bit :)

> You are not going to succeed without more spindles and likely more CPUs.
> Just launching a "Perl" hello-world script takes >10ms on a fast machine,
> do that 100 times a second and you've burned a CPU, and non-trivial
> scripts are slower still.

As I said above - scripts is not the point at a time. If it will, I'll rewrite them, so my scripts will listen unix socket and I'll put messages directly into sockets.

I think, that things will go faster, if postfix, instead of saving new messages to queue, will try to deliver it to deliver agent "in memory", and only if that fails, save the message to queue. Don't you think, this will be faster? Is that possible? I can make a patch (not for upstream, only for me).

From: devel anaconda on

08.11.09, 12:28, "James MacLachlan" <james(a)bluegrass.net>:

> Is your queue disk mounted aysnc? If so you are in ram for the most
> part anyway,

Well, actually - not.
Yes, it's mounted with async. I straced the cleanup daemon. Two things slows down HDD's: write() and fsync() on each message. So, I disabled fsync() and didn't get any appreciable benefits. So, the write() is the thing.

If moving all queues to RAID0 won't help, I'll change postfix a bit for moving only "incoming" queue to RAM disk. "Vanilla" postfix does not allow that.
If that won't help, I'll try to move all queues to RAM and see.
Thanks.