diff --git a/doc/htdocs/configuration.html b/doc/htdocs/configuration.html new file mode 100644 index 00000000..744b8049 --- /dev/null +++ b/doc/htdocs/configuration.html @@ -0,0 +1,60 @@ + + +
+ +Coming soon.
+Gunicorn performances are good enough for most cases. Most often performances can be improved in your application.
+See Configuration for more informations.
+There are various kernel parameters that you might want to tune in order to deal with a large number of simultaneous connections. Generally these should only affect sites with a large number of concurrent requests and apply to any sort of network server you may be running. They're listed here for ease of reference.
+The commands listed are tested under Mac OS X 10.6. Your flavor of Unix may use slightly different flags. Always reference the appropriate man pages if uncertain.
+One of the first settings that usually needs to be bumped is the maximum number of open file descriptors for a given process. For the confused out there, remember that Unices treat sockets as files.
++$ sudo ulimit -n 1024 ++
Listening sockets have an associated queue of incoming connections that are waiting to be accepted. If you happen to have a stampede of clients that fill up this queue new connections will eventually start getting dropped.
++$ sudo sysctl -w kern.ipc.somaxconn="1024" ++
After a socket is closed it eventually enters the TIME_WAIT state. This can become an issue after a prolonged burst of client activity. Eventually the ephemeral port range is used up which can cause new connections to stall while they wait for a valid port.
+This setting is generally only required on machines that are being used to test a network server.
++$ sudo sysctl -w net.inet.ip.portrange.first="8048" ++