|
From: Gene <ge...@co...> - 2003-11-19 08:03:04
|
One possible explanation: server does active close so you may run out of available ports on a client side. The same client port cannot be reused for 2MSL (30 seconds on Linux?). Client can't connect till ports become available, which can lead to bursty behavior you observed. Even with 65K ports, the max sustained request rate from a single IP can't be more than ~2000 req/s (65K/30s). >I'm currently knee deep in writing a couple of apps that make heavy use of state threads. I'm >hitting some performance issues at high load. I can reproduce the problem by using the "server" >example and writing a small app that connects to the "server" and hammers it as fast as it can. A >little bit of timing shows that it can manage only around 7000 connections/second. Anything above >that and the "server" seems to lock up for short periods, serving a few connections in spurts, >then locking up, then serving a few more connections. The jerkiness is more prevalent when there >are multiple processes hitting a single "server" process. Oh, this is on a P3 Linux 8 box. I'm >just wondering if this is a queue size problem (although I've bumped it past 10000), an OS problem >(FD_SETSIZE or somaxconn), or just something to do with state threads? > |