# Increase Networking Performance



## danielmartinj (Aug 24, 2010)

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.


```
# set to at least 16MB, and 32MB for 10G hosts
    kern.ipc.maxsockbuf=16777216
    net.inet.tcp.rfc1323=1
```
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):


```
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:


```
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


----------



## DutchDaemon (Aug 24, 2010)

I've edited about half of your posts now, and it's about time you started doing your own formatting: Posting and Editing in the FreeBSD Forums.


----------



## phoenix (Aug 24, 2010)

Sysctls are managed using the ... sysctl() command.  

To enable something temporarily:
`# sysctl net.inet.tcp.sendbuf_inc=16384`

To enable something permanently (ie, set at boot time), just edit /etc/sysctl.conf.


----------



## danielmartinj (Aug 25, 2010)

OK,

I was not aware I was submitting posts that were incorrect.  I should of realized this sooner.  I will try to be more careful next time DutchDaemon.  Thanks for your help phoenix.


----------

