select() doesn't pass new connections?

Hi,

I am experiencing some problem, that I am not sure if I can precisely describe :(.

We run some home brew http proxy. It worked for years without problem, but now (nothing has changed in it's code) it seems that select() sometimes doesn't pass new incoming connections. It happens when there is just about one thousand parallel connections generating about 30Gbps traffic. The listen queue is at that time increasing to about one thousand, but select() doesn't return anything. CPU is at that time practically idle. It's on FreeBSD 7.1. It didn't happen on FreeBSD 6.x, but it is not sure if this is the cause because we haven't this installation on 6.x.

Have you please any ideas where to look for a cause?

Thanks.
 
/var/log/messages, [cmd=]netstat -m[/cmd], [cmd=]systat -netstat 1[/cmd], [cmd=]systat -vmstat 1[/cmd]. Any signs?
 
DutchDaemon said:
/var/log/messages

"Limiting closed port RST response from 292 to 200 packets/sec" otherwise nothing.

DutchDaemon said:
[cmd=]netstat -m[/cmd], [cmd=]systat -netstat 1[/cmd], [cmd=]systat -vmstat 1[/cmd]. Any signs?

I will send these when the problem occurs, but I didn't notice anything suspicious before.

(I forgot to mention that the proxy listens on carp interface, if that can have some importance.)
 
Carp presupposes PF? Are you running out of PF states maybe? On a busy bridge I had to bump it up from the default of 10,000 to over 50,000 states, and that was 'only' about 150 Mbit/sec of traffic (lots of P2P though, so lots of connections per user).
 
Unfortunately, there are only about 3,000 states when the problem occurs (and limit is default, 10,000).
 
Back
Top