in reply to SMTP server in perl

If you're forking, load as much code and unchanging data as soon as possible, since it should all be shared.

By the way, 16 Mb is not that much if you're sharing most of it; I've seen apache/mod_perl applications that take more than 150 Mb (almost all of it shared) and still have very good performance.

Say you need 1Mb unshared per process, + 15 Mb for the whole set, on a machine with 500 Mb memory, that would mean you could run at least 400 concurrent processes; I would be surprised if you would need so many with 50.000 messages a day - but ofcourse that depends on the amount of time you need to spend on a single message.