Ubuntu Server 10.04.1 x86
I've got a machine with a FCGI HTTP service behind nginx, that serves a lot of small HTTP requests to a lot of different clients. (About 230 requests per second in the peak hours, average response size with headers is 650 bytes, several millions of different clients per day.)
As a result, I have a lot of sockets, hanging in TIME_WAIT (graph is captured with TCP settings below):

I'd like to reduce the number of sockets.
What can I do besides this?
$ cat /proc/sys/net/ipv4/tcp_fin_timeout 1 $ cat /proc/sys/net/ipv4/tcp_tw_recycle 1 $ cat /proc/sys/net/ipv4/tcp_tw_reuse 1
Update: some details on the actual service layout on the machine:
client -----TCP-socket--> nginx (load balancer reverse proxy)
-----TCP-socket--> nginx (worker)
--domain-socket--> fcgi-software
--single-persistent-TCP-socket--> Redis
--single-persistent-TCP-socket--> MySQL (other machine)
I probably should switch load-balancer --> worker connection to domain sockets as well, but the issue about TIME_WAIT sockets would remain — I plan to add a second worker on a separate machine soon. Won't be able to use domain sockets in that case.