John Sequeira


Thursday, January 04, 2007
Fastmail switches from (perdition &) apache to nginx

A while back, we changed our frontend IMAP/POP proxy from perdition to nginx. Perdition uses a traditional unix “one process per connection” model to manage the proxying of IMAP/POP requests. Because of the long lived nature of IMAP connections, perdition was using over 8,000 processes on each of our frontend machines. Even with Linux 2.6 and the O(1) scheduler, the machines were beginning to struggle with the large number of processes, creating a sluggish feeling to IMAP connections.

Instead of a process per connection, nginx uses a small fixed process pool and non-blocking code with epoll (on linux) to provide much higher scalability.


The net result of all this is that each frontend proxy server currently maintains over 10,000 simultaneous IMAP, POP, Web & SMTP connections (including many SSL ones) using only about 10% of the available CPU on 3.20GHz Netburst Xeon based CPUs.

I'm a sucker for silver bullet testimonials.
9:20:56 AM      comment []  trackback []

© Copyright 2007 John Sequeira.
January 2007
Sun Mon Tue Wed Thu Fri Sat
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
Dec   Feb

Click here to visit the Radio UserLand website.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.
Yahoo: johnseq2
MSN: [email protected]
AIM: amped02139
Skype: johnjulian