[OpenIndiana-discuss] Event Ports performance
rakesh at sptci.com
Wed Feb 8 19:55:31 UTC 2012
I have been trying out a few event ports based servers and libraries, and have been seeing very poor performance. I am running the latest OI distribution. For eg. Nginx from opencsw maxes out at about 10K pages/second on OI running on Parallels Desktop on MBP. Apache 2.2.15 from the dev pkgs gives me about 22K pages/second (the default it works pages for both). As a reverse proxy or fastcgi server, the performance difference is even bigger - more than 5x slower than Apache.
I tried the simple http server sample from http://arekzb.wordpress.com/2008/04/27/lighttz-a-simple-and-fast-web-server/ along with libev (I tried changing between select, poll and ports in his source), and got only about 400 requests/second for serving very short text from memory. My own Poco C++ based servlet container implementation gives me about 6K requests/second serving much larger volume of data, and not from RAM. The Poco HTTP server implementation is a traditional thread/select system.
In particular I wanted to know about a couple of items I learned from the libev documentation, and as to what the status is as relates to OI.
http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#SOLARIS_PROBLEMS_AND_WORKAROUNDS - mentions patches that need to be applied to get proper event ports performance. The package manager did not list any patches available for my system.
The note about EVBACKEND_PORT on the same page mentions that event ports is really slow but scales very well. I can replicate the really slow part :-)
Has anyone noticed the same type of issue with OI? Any recommendations on patches or other settings that I can try? Or, is it a case of nginx, libev etc. not using the event ports framework properly? I have used only the FEN part of the event ports framework directly, but that is never going to generate large volume traffic to slow down anything.
More information about the OpenIndiana-discuss