Hello Everyone,
I was hoping anyone here knew of a simple way to increase network performance for a server running freebsd7.2 32bit? My NICs are all 1Gbps, my hardware does not seem to be stressed at all, and I am running freebsd under default settings but after using IPerf it said's I have a bandwidth of 15Mbs. And my system does seem to lag a bit as I get toward 12 and above Mbps. After doing some searching I come across a couple of articles talking about fine tuning TCP. I have been thinking this could be a problem.
ex.
Add these to /etc/sysctl.conf and reboot.
FreeBSD 7.0 added TCP send and receive buffer autotuning. There are some additional settings to modify. (The default for these is 256 KB, which is too small):
Here are the new TCP Autotuning settings in 7.0 (and higher) to know about. Defaults for these should be fine for 100BT hosts, but recvbuf_inc in particular should be increased for 1 or 10 Gbps hosts. Here are the recommended settings:
So my question is can I change these settings without going into /etc/sysctl.conf
Where in the file system are these variables located at? I do not want to make a change and not know how to revert back to default settings if the change is negative? Any advice or suggestions?
Thanks,
Martin
I was hoping anyone here knew of a simple way to increase network performance for a server running freebsd7.2 32bit? My NICs are all 1Gbps, my hardware does not seem to be stressed at all, and I am running freebsd under default settings but after using IPerf it said's I have a bandwidth of 15Mbs. And my system does seem to lag a bit as I get toward 12 and above Mbps. After doing some searching I come across a couple of articles talking about fine tuning TCP. I have been thinking this could be a problem.
ex.
Add these to /etc/sysctl.conf and reboot.
Code:
# set to at least 16MB, and 32MB for 10G hosts
kern.ipc.maxsockbuf=16777216
net.inet.tcp.rfc1323=1
Code:
net.inet.tcp.sendbuf_max=16777216
net.inet.tcp.recvbuf_max=16777216
Here are the new TCP Autotuning settings in 7.0 (and higher) to know about. Defaults for these should be fine for 100BT hosts, but recvbuf_inc in particular should be increased for 1 or 10 Gbps hosts. Here are the recommended settings:
Code:
net.inet.tcp.sendbuf_auto=1 # Send buffer autotuning enabled by default
net.inet.tcp.sendbuf_inc=16384 # step size
net.inet.tcp.recvbuf_auto=1 # enabled
net.inet.tcp.recvbuf_inc=524288 # step size
So my question is can I change these settings without going into /etc/sysctl.conf
Where in the file system are these variables located at? I do not want to make a change and not know how to revert back to default settings if the change is negative? Any advice or suggestions?
Thanks,
Martin