From owner-freebsd-hackers Fri Nov 30 10:19:50 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from prism.flugsvamp.com (cb58709-a.mdsn1.wi.home.com [24.17.241.9]) by hub.freebsd.org (Postfix) with ESMTP id EF76037B405 for ; Fri, 30 Nov 2001 10:19:37 -0800 (PST) Received: (from jlemon@localhost) by prism.flugsvamp.com (8.11.0/8.11.0) id fAUIGMi82461; Fri, 30 Nov 2001 12:16:22 -0600 (CST) (envelope-from jlemon) Date: Fri, 30 Nov 2001 12:16:22 -0600 (CST) From: Jonathan Lemon Message-Id: <200111301816.fAUIGMi82461@prism.flugsvamp.com> To: jc@irbs.com, hackers@freebsd.org Subject: Re: FreeBSD performing worse than Linux? X-Newsgroups: local.mail.freebsd-hackers In-Reply-To: References: Organization: Cc: Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG In article you write: >Quoting Sergey Babkin (babkin@bellatlantic.net): >> John Capo wrote: >> > 21:41:49.001039 client.4427 > server.22: P 144:192(48) ack 12937 win >17376 (DF) [tos 0x10] >> > 21:41:49.001073 server.22 > client.4427: . 28049:29497(1448) ack 192 >win 17328 (DF) [tos 0x10] >> > 21:41:49.001085 server.22 > client.4427: P 29497:30313(816) ack 192 >win 17328 (DF) [tos 0x10] >> > 21:41:49.109131 client.4427 > server.22: . ack 12937 win 17376 > (DF) [tos 0x10] >> >> And here a _very_ pathological thing has happened: the server >> just forgot to send the data between sequence numbers 12937 >> and 28049. Since the dump was done on the server side, this suggests >> that something very bad has happened with the TCP state on >> the server side. Possibly the value of the current sequence number >> in the protocol control block got overwritten by something. I don't believe this is happening. It looks like the server blasts everything over the the client, and the client drops a whole bunch of segments. When the server gets the dupack, it correctly performs a fast retransmit and continues transmitting where it left off. server side: 21:41:46.396051 client.4427 > server.22: . ack 11489 win 17376 21:41:46.418208 client.4427 > server.22: . ack 11489 win 17376 21:41:47.460903 server.22 > client.4427: . 11489:12937(1448) ack 144 win 17376 client side: 21:41:46.712307 server.22 > client.4427: P 11441:11489(48) ack 144 win 17376 21:41:46.763034 server.22 > client.4427: . 25937:27385(1448) ack 144 win 17376 21:41:46.763106 client.4427 > server.22: . ack 11489 win 17376 21:41:46.785324 server.22 > client.4427: P 27385:28049(664) ack 144 win 17376 21:41:46.785370 client.4427 > server.22: . ack 11489 win 17376 21:41:47.936278 server.22 > client.4427: . 11489:12937(1448) ack 144 win 17376 However, at this point, the client no further packets, so the server really needs to enter slow start and retransmit everything starting at 12937. Instead, it seems that the server remains in congestion avoidance, and keeps sending at leading edge of the window, performing fast retransmits. John, please try tweaking this sysctl: sysctl -w net.inet.tcp.local_slowstart_flightsize=1 which should force the server to start out doing slow start. This isn't exactly a fix for the above problem, but may heip avoid getting into the situation in the first place. -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message