FreeBSD -> Windows HTTP TCP performance

CHOI Junho cjh at kr.FreeBSD.org
Tue Jan 13 05:55:37 PST 2004


Hi,

Our company's web service has noticable difference serving Windows
HTTP clients(IE) (98, 2000, XP). It is relatively slow comparing
Windows -> Windows case.

 - FreeBSD(4.7,4.8,4.9) thttpd/apache/builtin ftpd -> Windows 2000 : 300-800Kbytes/sec
 - Windows 2000 IIS(no optimization) -> Windows 2000 : 800k - 1.1Mbytes/sec

HTTP request is plain file transfer(around 10-20Mbytes).

XP client was very bad result, about 300-400Kbytes/sec for FreeBSD
server. Our servers are in data center, and client PC has 10M connection.

At first I suspected network environment of server and client, but two
servers(FreeBSD, windows) are on the same subnet and link
type(1000SX), hardware, server load, etc. so I didn't see any
difference between them.

With google, I found some info but it doesn't help... (e.g. set tcp
sendspace/recvspace to 64k, turn off delayed_ack, turn on rfc1323
knob, or samba SO_SNDBUF optimization).

Also, bandwidth test using iperf and ttcp shows almost same bandwidth(8~9Mbit/sec).

Can you give me any hints? Here is my sysctl.conf:

kern.ipc.nmbclusters="65536" (in /boot/loader.conf.local)

net.link.ether.inet.log_arp_wrong_iface=0
kern.ipc.maxsockbuf=67108864
kern.ipc.somaxconn=32768
kern.maxfiles=65536
kern.maxfilesperproc=32768
net.inet.tcp.rfc1323=1
net.inet.tcp.delayed_ack=0
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536
net.inet.ip.portrange.last=20000
net.inet.ip.portrange.hifirst=40000
net.inet.tcp.msl=1000
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=0
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
net.link.ether.inet.max_age=1200
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
net.inet.tcp.inflight_enable=1
kern.polling.enable=1


More information about the freebsd-net mailing list