FreeBSD -> Windows HTTP TCP performance

Andre Oppermann andre at freebsd.org
Thu Jan 15 06:30:26 PST 2004


CHOI Junho wrote:
> 
> For those who interested, I made packet dump file:
> 
>   http://www.kr.freebsd.org/~cjh/misc/freebsd-net/
> 
> Best thing is do tcpdump at client machine but I have no admin
> permission, so failed.

I can't read the dump files with ethereal, it says they are corrupt.

But lets go through your sysctl settings:

> kern.clockrate: { hz = 2000, tick = 500, ...

HZ should not be higher than 1000 or you get problems with some
tcp timers.

> kern.ipc.maxsockbuf: 67108864

This is way too high.  Normally it is 262144 (=256k).  Don't do
more than 1MByte.

> <118>Jan 12 13:06:21 kt-down3 thttpd[37449]: accept - Software caused connection abort
> <118>Jan 12 13:21:00 kt-down3 thttpd[37449]: mmc panic - freeing 49 unreferenced maps
> <118>Jan 12 13:22:49 kt-down3 thttpd[37449]: mmc panic - freeing 49 unreferenced maps
> <118>Jan 12 13:31:18 kt-down3 thttpd[37449]: mmc panic - freeing 45 unreferenced maps
> <118>Jan 12 13:33:12 kt-down3 thttpd[37449]: mmc panic - freeing 110 unreferenced maps

This doesn't look good.  You should find out why thttpd is complaining.

> net.inet.tcp.sendspace: 32768
> net.inet.tcp.recvspace: 16384

It's better to have them both at 65536 (64k).

> net.inet.tcp.delayed_ack: 0

It's better to have this turned on.

> net.inet.tcp.slowstart_flightsize: 1

You can raise this to 4.

> net.inet.tcp.msl: 1000

It's better to have this at 30000.


You should change these values and try again.  A new tcpdump would be
helpful too.

-- 
Andre


More information about the freebsd-net mailing list