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