rabid - program to test POP server throughput.
rabid [-r max-connections-per-minute] [-p processes] [-l local-address]
[-c messages-per-connection] [-a] [-s ssl-percentage] [-i
imap-percentage] [-b qmail-pop] [-d
download-percentage[:delete-percentage]] [-[z|Z] debug-file] [-u]
This manual page documents briefly the rabid, program.
It is designed to test the performance of POP email servers by reading
all messages from randomly selected accounts as fast as possible. A
future version will support rate limiting to provide a constant load
(for testing SMTP servers).
The pop-server parameter specifies the IP address or name of the mail
server that the mail is to downloaded from. If you want to specify a
port other than port 110 then enclose the host address in square
brackets and have the port address immidiately following. If you want
a DNS lookup for every connection (for testing round-robin DNS) then
immediately preceed the host address with a ’+’ character.
The user-list-filename is the name of a file which contains a list of
user’s email addresses and passwords. It will have one address per
line and the password follows the address with a space to seperate.
The processes parameter is the number of processes that should be
forked off to attempt seperate connections. A well configured mail
server won’t accept an unlimited number of connections so make sure you
don’t specify a number larger than the number your mail server is
configured to handle. Also for sensible results make sure that you
don’t use enough to make your server thrash as the results won’t be
representative of real-world use.
The max-connections-per-minute parameter is for limiting the number of
connections that the program makes. This is designed to be used when
you want to test the performance of other programs when the system is
under load. The default is 24000 connections per minute.
The messages-per-connection parameter specifies the maximum number of
messages to download in a single POP session. The default is -1
The local-address parameter specifies which local IP address(es) are
used to make the outbound connections. Specified in the same way as
the remote address. This is good for testing LocalDirectors or other
devices that perform differently depending on which source IP address
The -a command turns on all logging. All message data received will be
logged. This will make it slow and it may not be able to saturate a
fast Ethernet link...
The -s switch specifies the percentage of connections which are to use
TLS AKA SSL. Use 0 for no SSL, or 100 for always SSL, or any number in
between. Default is 0.
The -i switch specifies the percentage of IMAP connections (default is
The -b switch allows you to specify breakage strings. Currently the
only option is for Qmail POP server which adds an extra blank line at
the end of each message. -b qmail-pop means to not report this as an
-d download-percentage[:delete-percentage] allows you to specify what
percentage of the messages are downloaded and what percentage of the
downloaded messages are deleted. Default is 100%.
The -u switch causes the domain of user-names to be ignored. This
allows you to have a single file with user-names and passwords which
can be used by postal and rabid. By default postal will ignore the
password field, rabid may or may not need the domain depending on the
configuration of the POP server. The default is to use the domain
(which is required if the same user is present in multiple domains),
this switch causes the domain part to be stripped from the user-name
The -z switch allows you to specify a debugging file base. From this
base one file is created for each thread (with a ’:’ and the thread
number appended), each file is used to log all IO performed by that
thread for debugging purposes.
The -Z switch is the same but creates a separate file for each
connection as well with an attitional ’:’ appended followed by the
Doesn’t actually do SSL or IMAP yet.
0 No Error
1 Bad Parameters
2 System Error, lack of memory or some other resource
This program, it’s manual page, and the Debian package were written by
Russell Coker <email@example.com>.
The source is available from http://doc.coker.com.au/projects/postal/ .
See http://etbe.coker.com.au/category/benchmark for further