Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Dec 2011 00:57:52 +0700
From:      Dmitriy Kryuk <kryukdmitriy@rambler.ru>
To:        freebsd-questions@freebsd.org
Subject:   Free memory exhausted by networking
Message-ID:  <4EE79220.8050007@rambler.ru>

next in thread | raw e-mail | index | archive | help
I'm running Transmission (http://www.transmissionbt.com/), а BitTorrent 
client on my FreeBSD 7.2 box. It requests large recieve buffers for its 
network connections. This leaves my system with absolutely no free 
memory. If some process frees a large amount of memory, it gets consumed 
about 1.5 megabytes per second until it drops to zero.
I don't seem to have any problems like denied network connections or 
memory allocation, but it makes my system swap in and out often.
As top shows:

CPU: 24.9% user, 0.0% nice, 27.2% system, 33.1% interrupt, 14.8% idle
Mem: 217M Active, 143M Inact, 105M Wired, 25M Cache, 59M Buf, 8K Free
Swap: 4352M Total, 236K Used, 4352M Free

I wasn't able to reproduce this problem with any other program, but it 
clearly disappears when I stop Transmission. The amount of free memory 
rarely drops below 5 MB without Transmission running.
netstat -m shows nothing criminal:

4642/983/5625 mbufs in use (current/cache/total)
3380/214/3594/65536 mbuf clusters in use (current/cache/total/max)
3380/103 mbuf+clusters out of packet secondary zone in use (current/cache)
346/93/439/8480 4k (page size) jumbo clusters in use 
(current/cache/total/max)
0/0/0/4240 9k jumbo clusters in use (current/cache/total/max)
0/0/0/2120 16k jumbo clusters in use (current/cache/total/max)
9304K/1045K/10350K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/5/4496 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines

My sysctl tunes:

vfs.usermount=1
kern.ipc.nmbclusters=65536
kern.ipc.maxsockbuf=4194304
kern.ipc.maxsockets=204800
net.tcp.sendbuf_inc=16384
net.inet.tcp.recvbuf_inc=131072
net.inet.ip.fastforwarding=1
net.inet.tcp.tcbhashsize="4096"

How do I make FreeBSD keep some memory free (and so avoid swapping) with 
Transmission running?



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4EE79220.8050007>