When mail is draining slowly or the queue is unexpectedly large,
run
qshape(1) as the super-user (root) to help zero in on the problem.
The
qshape(1) program displays a tabular view of the Postfix queue
contents.
-
On the horizontal axis, it displays the queue age with
fine granularity for recent messages and (geometrically) less fine
granularity for older messages.
-
The vertical axis displays the destination (or with the
"-s" switch the sender) domain. Domains with the most messages are
listed first.
For example, in the output below we see the top 10 lines of
the (mostly forged) sender domain distribution for captured spam
in the "
hold" queue:
$ qshape -s hold | head
T 5 10 20 40 80 160 320 640 1280 1280+
TOTAL 486 0 0 1 0 0 2 4 20 40 419
yahoo.com 14 0 0 1 0 0 0 0 1 0 12
extremepricecuts.net 13 0 0 0 0 0 0 0 2 0 11
ms35.hinet.net 12 0 0 0 0 0 0 0 0 1 11
winnersdaily.net 12 0 0 0 0 0 0 0 2 0 10
hotmail.com 11 0 0 0 0 0 0 0 0 1 10
worldnet.fr 6 0 0 0 0 0 0 0 0 0 6
ms41.hinet.net 6 0 0 0 0 0 0 0 0 0 6
osn.de 5 0 0 0 0 0 1 0 0 0 4
-
The "T" column shows the total (in this case sender) count
for each domain. The columns with numbers above them, show counts
for messages aged fewer than that many minutes, but not younger
than the age limit for the previous column. The row labeled "TOTAL"
shows the total count for all domains.
-
In this example, there are 14 messages allegedly from
yahoo.com, 1 between 10 and 20 minutes old, 1 between 320 and 640
minutes old and 12 older than 1280 minutes (1440 minutes in a day).
By default, qshape shows statistics for the union of both the
incoming and
active queues which are the most relevant queues to
look at when analyzing performance.
One can request an alternate list of queues:
$ qshape deferred | less
$ qshape incoming active deferred | less
this will show the age distribution of the
deferred queue or
the union of the incoming active and
deferred queues.
Command line options control the number of display "buckets",
the age limit for the smallest bucket, display of parent domain
counts and so on. The "-h" option outputs a summary of the available
switches.