* Richard Sharpe <[EMAIL PROTECTED]> [011130 15:02] wrote: > Matthew Dillon wrote: > > > Well, this is embarassing. I can reproduce this completely running > > 4.4-stable (Nov 17th kernel) on two machines. > > > > With newreno turned on, a TCP NFS mount only gets 80K/sec. With newreno > > turned off on the transmit side, a TCP NFS mount gets 7MB/sec. The > > state of the delayed-ack sysctl is irrelevant. This is without running > > any nfsiod's (which would mask the degredation of the synchronous > > messaging). > > > I have upgraded to 4.4-STABLE, and have hacked in some changes to ata-dma.c >(provided by Greg Lehey, but I had to do it by hand) so my drive is now running at >UDMA 100. > > > I have also ensured that disk write caching is on, which it seems to be > by default in 4.4. > > These changes have made a difference to the NetBench and dbench runs (improved >them), but they have made no difference to the tbench runs, which only do network >stuff. > > > The traffic in the tbench case is SMB taffic. Request/response, with a mixture of >small requests and responses, and big request/small response or small request/big >response, where big is 64K. > > > I have switched off newreno, and it made no difference. I have switched > off delayed_ack, and it reduced performance about 5 percent. I have made > sure that SO_SNDBUF and SO_RCVBUF were set to 131072 (which seems to be > the max), and it increased performance marginally (like about 2%), but > consistently. > > I am still analysing the packet traces I have, but it seems to me that > the crucial difference is Linux seems to delay longer before sending > ACKs, and thus sends less ACKs. Since the ACK is piggybacked in the > response (or the next request), it all works fine, and the > reponse/request gets there sooner. > > However, I have not convinced myself that the saving of 20uS or so per > request/response pair accounts for some 40+ Mb/s.
Can you try these two commands: sysctl -w net.inet.tcp.recvspace=65536 sysctl -w net.inet.tcp.sendspace=65536 you can put them in /etc/sysctl.conf as: net.inet.tcp.recvspace=65536 net.inet.tcp.sendspace=65536 thanks, -- -Alfred Perlstein [[EMAIL PROTECTED]] 'Instead of asking why a piece of software is using "1970s technology," start asking why software is ignoring 30 years of accumulated wisdom.' http://www.morons.org/rants/gpl-harmful.php3 To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message