Which resource am I running out of here?
Andy Smith
andy at freebsdwiki.org
Wed May 19 12:22:40 PDT 2004
On Wed, May 19, 2004 at 02:30:26AM +0000, Andy Smith wrote:
> I have an application which needs to open a lost of TCP connections
> at once. Up until now I have been telling this application to limit
> itself to 1024 file descriptors at once, but today I thought I would
> let it rip and increase it to 4096.
>
> When I did this, I started noticing errors in other applications on
> the same machine, such as postfix:
>
> 9905D27F28 4026 Tue May 18 23:53:55 mark at example.org
> (connect to mail.example.com[67.15.16.50]: Can't assign requested address)
> kari at example.com
>
> Also emulating a HTTP connection:
>
> $ telnet babylon.otherwize.co.uk 80
> Trying 212.13.198.54...
> telnet: connect to address 212.13.198.54: Can't assign requested address
I had some suggestions off-list. One said it might be mbufs, but
netstat doesn't really confirm:
$ netstat -m
139/688/26624 mbufs in use (current/peak/max):
135 mbufs allocated to data
2 mbufs allocated to ancillary data
2 mbufs allocated to socket names and addresses
86/370/6656 mbuf clusters in use (current/peak/max)
912 Kbytes allocated to network (4% of mb_map in use)
0 requests for memory denied
0 requests for memory delayed
0 calls to protocol drain routines
Another suggested I was running out of ephemeral ports:
$ sysctl -a | grep portrange
net.inet.ip.portrange.lowfirst: 1023
net.inet.ip.portrange.lowlast: 600
net.inet.ip.portrange.first: 1024
net.inet.ip.portrange.last: 5000
net.inet.ip.portrange.hifirst: 49152
net.inet.ip.portrange.hilast: 65535
If my application is using first -> last then I can this would be
quite likely: I'm opening over 4000 TCP connections at once. But I
thought it used hifirst -> hilast.
I also increased kern.ipc.somaxconn from 128 to 1024 but this did
not appear to help. Are there any other resource limits which
people think I should be changing? The connections are very
short-lived, perhaps no more than 30 seconds each, and hardly any
data goes over them.
Okay, while writing this email I used lsof to see what TCP
conections my app had. They do all seem to have source ports within
the first -> last range.
$ sudo sysctl net.inet.ip.portrange.last=20000
net.inet.ip.portrange.last: 5000 -> 20000
seem to have removed my problem. Thanks!
--
http://freebsdwiki.org/ - Encrypted mail welcome - keyid 0xBF15490B
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20040519/c787376b/attachment.bin
More information about the freebsd-stable
mailing list