rabid(8)
π rabid β bestie's guide to POP server throughput testing π
okay so you found rabid(8) in the Postal manual and you're like "what is this chaotic little program" β don't worry, I got you. sit down, grab a strawberry π, and let's go.
β¨ NAME β¨
rabid β a whole program whose entire job is testing POP server throughput. it's giving "stress test but make it feral." π
πΈ SYNOPSIS πΈ
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]
pop-server user-list-filename
like⦠that's a LOT of brackets but every single one of them matters, no cap.
π¦ DESCRIPTION π¦
This manual page documents briefly the rabid program. short and sweet, we move. π
So what does it do? It's designed to test the performance of POP email servers by reading all messages from randomly selected accounts as fast as possible. literally just absolutely zooming through your mailboxes at max speed. β‘
A future version will support rate limiting to provide a constant load (for testing SMTP servers). so like, that's not a thing yet, bestie. don't go looking for it. π
Now the important bits β let's talk parameters:
- The
pop-serverparameter 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
110then enclose the host address in square brackets and have the port address immidiately following. (yes, "immidiately" β I'm keeping the typo exactly as-is, don't come for me, it's canon.) π - 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-filenameis 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. one per line, space, password, boom, done. π - The
processesparameter 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.
π¨ real talk: don't be out here forking a million processes and then being shocked when your numbers are nonsense. a thrashed server gives thrashy data. periodt.
- The
max-connections-per-minuteparameter 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 is24000connections per minute. π₯ - The
messages-per-connectionparameter specifies the maximum number of messages to download in a single POP session. The default is-1(unlimited). literally infinite vibes. π - The
local-addressparameter 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 was used. π - The
-acommand 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... π
so like, -a is highkey a vibe killer for throughput. it logs EVERYTHING. you've been warned. β
- The
-sswitch specifies the percentage of connections which are to use TLS AKA SSL. Use0for no SSL, or100for always SSL, or any number in between. Default is0. - The
-iswitch specifies the percentage of IMAP connections (default is POP). - The
-bswitch 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-popmeans to not report this as an error. π«Ά -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 is100%. ποΈ- The
-uswitch 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 bypostalandrabidwhen using a server which doesn't accept a domain. By defaultpostalwill ignore the password field,rabidmay 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 field. π - The
-zswitch 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
-Zswitch is the same but creates a separate file for each connection as well with an attitional':'appended followed by the connection number. (again: "attitional" is the original spelling, keeping it, it's iconic now. π)
π BUGS π
Doesn't actually do SSL or IMAP yet.
yeah bestie. the-sand-iflags are out here manifesting. they exist. they are documented. they do not do the thing. πππ
π RETURN CODES π
0β No Error. we ate. π₯1β Bad Parameters. you typed something cursed. π2β System Error, lack of memory or some other resource. the machine said "no <3". π
π AUTHOR π
This program, it's manual page, and the Debian package were written by Russell Coker <russell@coker.com.au>.
π AVAILABILITY π
The source is available from http://doc.coker.com.au/projects/postal/ .
See http://etbe.coker.com.au/category/benchmark for further information.
π SEE ALSO π
and that's the whole page, bestie!! πβ¨π¦ this was rabid(8) from Postal, and the version we're working with is 0.70, dated way back with a little russell@coker.com.au sitting in the footer like a signature. so if you ever forget: version 0.70, by Russell Coker, and it's still not doing SSL or IMAP yet. mwah. π
ππ«Ά
π¦ where this page comes from
- debian bookworm: postal 0.76+nmu1
- debian trixie: postal 0.76+nmu2
- ubuntu jammy: postal 0.76+nmu1
- ubuntu noble: postal 0.76+nmu1build2
- ubuntu questing: postal 0.76+nmu2
- ubuntu resolute: postal 0.76+nmu2build1
- ubuntu stonking: postal 0.76+nmu2build1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms