From: Ram on
On my central postfix server I do typically 100k mail transactions per
hour. Postfix 2.7 on a Dual Quadcore Xeon 4 GB Ram RHEL5 box.


Sometimes this happens that mails move very slowly from incoming queue
to the active queue.


I think I got the basic hygiene right:
This server has absolutely no header-checks , no content-checks ,
transport file ( hash) has less than 2k lines and syslog is not an issue
too. ( I dev-nulled the mail and tested that )


I suspect that the machine is starving on I/O , but "iostat " shows an
iowait of only 10%


>From the qshape readme
http://www.postfix.com/QSHAPE_README.html
"If the problem is I/O starvation, consider striping the queue over more
disks"

Does that mean I can have them over different partitions on different
disks. I had initially assumed all the postfix spool must be on the
same partition





Thanks
Ram

From: lst_hoe02 on
Zitat von Ram <ram(a)netcore.co.in>:

> On my central postfix server I do typically 100k mail transactions per
> hour. Postfix 2.7 on a Dual Quadcore Xeon 4 GB Ram RHEL5 box.
>
>
> Sometimes this happens that mails move very slowly from incoming queue
> to the active queue.
>
>
> I think I got the basic hygiene right:
> This server has absolutely no header-checks , no content-checks ,
> transport file ( hash) has less than 2k lines and syslog is not an issue
> too. ( I dev-nulled the mail and tested that )


I guess you have read http://www.postfix.org/QSHAPE_README.html#incoming_queue


> I suspect that the machine is starving on I/O , but "iostat " shows an
> iowait of only 10%

From my point of view 10% can be quite a lot taken into account that
it is for all processes on the machine. As there is only one "qmgr"
but many "smtpd" it is possible that qmgr is limited by I/O on your
machine.
For possible band-aid have a look at in_flow_delay. Also check that
mail is leaving fast, otherwise the active queue will max-out by
default at 20000 mails.

>> From the qshape readme
> http://www.postfix.com/QSHAPE_README.html
> "If the problem is I/O starvation, consider striping the queue over more
> disks"
>
> Does that mean I can have them over different partitions on different
> disks. I had initially assumed all the postfix spool must be on the
> same partition

From my understanding the spool must be on the same partition. The
"different disks" is meant to be RAID 0/1/10 whatever or a seperate
disk for the spool.

Regards

Andreas

From: Stan Hoeppner on
lst_hoe02(a)kwsoft.de put forth on 6/22/2010 6:50 AM:
> Zitat von Ram <ram(a)netcore.co.in>:

>> Does that mean I can have them over different partitions on different
>> disks. I had initially assumed all the postfix spool must be on the
>> same partition
>
> From my understanding the spool must be on the same partition. The
> "different disks" is meant to be RAID 0/1/10 whatever or a seperate disk
> for the spool.

This isn't even fully correct. Replace the word "partition" with
"filesystem". Postfix has no knowledge of disk provisioning, whether
partitions, or logical volumes created by some like LVM, etc. Postfix reads
from and writes to a filesystem, period.

The suggestion in the documentation assumes the reader is educated with
respect to *nix disk subsystems and filesystems. The suggestion is to create
a filesystem on a partition or logical volume on a disk subsystem comprised of
multiple disks and some form of striping to increase read/write throughput.
Striping allows read/write to multiple disk simultaneously. One would put the
postfix spool directory on the resulting filesystem. In order of maximal
performance the preferred striping RAID level would be:

1. RAID 0
2. RAID 10
3. RAID 5
4. RAID 50
5. RAID 6

RAID 0 decreases reliability but has vastly superior performance. If one disk
fails, both fail, from the OS's perspective. 2-5 all offer increased
reliability but 3-5 have decreased performance due to parity calculations,
especially so for RAID 6 which calculates parity _twice_. My advice would be
to only use 3-5 on a good hardware RAID controller with 256MB or more of cache.

Due to performance vs reliability factors, my recommendation would be to use 4
drives in a software or hardware RAID 10, preferably 10k or 15k RPM drives of
the SCSI or SAS flavor. SATA will work also but will be 30% to 100% slower.
From what the OP states, I'd say he'd probably do best with at least 73GB
drives, which would yield 146GB of RAID 10 storage for the spool. This will
yield twice the throughput of a single disk with double or more the
reliability. RAID 10 can suffer two disk failures simultaneously, but they
must be the "right" two disks because of the way the striping and mirroring is
performed. Normally one would simply count on RAID 10 to gracefully suffer
one disk failure, just like a mirrored set.

--
Stan