Date: Wed, 19 May 2004 19:22:30 +0000 From: Andy Smith <andy@freebsdwiki.org> To: FreeBSD STABLE <freebsd-stable@freebsd.org> Subject: Re: Which resource am I running out of here? Message-ID: <20040519192229.GN457@cashmere.blitzed.org> In-Reply-To: <20040519023025.GM457@cashmere.blitzed.org> References: <20040519023025.GM457@cashmere.blitzed.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--orrA+Dc/uYZgnQka Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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. >=20 > When I did this, I started noticing errors in other applications on > the same machine, such as postfix: >=20 > 9905D27F28 4026 Tue May 18 23:53:55 mark@example.org > (connect to mail.example.com[67.15.16.50]: Can't assign requested ad= dress) > kari@example.com >=20 > Also emulating a HTTP connection: >=20 > $ 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=3D20000 net.inet.ip.portrange.last: 5000 -> 20000 seem to have removed my problem. Thanks! --=20 http://freebsdwiki.org/ - Encrypted mail welcome - keyid 0xBF15490B --orrA+Dc/uYZgnQka Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAq7P1IJm2TL8VSQsRAvynAJ4wkKs9pn1zjmi79NRfNyYZF0khHwCfZdRr bp/sySvBjt+KA5kua2M10C4= =lYdT -----END PGP SIGNATURE----- --orrA+Dc/uYZgnQka--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040519192229.GN457>