Пока не знаю, где проблема - или в FreeBSD 8.1 или в nginx
После длительной работы получаем такую ситуацию:
# uname -rm
8.1-RELEASE amd64
# fstat | grep nginx | wc -l
74981
# fstat | grep nginx | grep internet | wc -l
41403
# sysctl kern.openfiles
kern.openfiles: 75029
# netstat -an | grep CLOSED | wc -l
37069
# netstat -an | wc -l
45273
# vmstat -z
ITEM SIZE LIMIT USED FREE REQUESTS FAILURES
...
socket: 680, 128004, 45080, 41578, 113208581, 115223
...
tcp_inpcb: 336, 128007, 45169, 41742, 109066845, 14647
tcpcb: 880, 128000, 45015, 41749, 109066382, 463
...
конфиг nginx-а:
worker_processes 4;
events {
worker_connections 65536;
use kqueue;
}
http {
output_buffers 1 256k;
read_ahead 1m;
aio sendfile;
sendfile on;
sendfile_max_chunk 128k;
#gzip on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 5;
reset_timedout_connection on;
...
}
Куда копать ? Как выяснить почему CLOSED tcp соединения не убиваются ?