From owner-cvs-all@FreeBSD.ORG Fri Jan 9 06:33:55 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 25EB016A4D0 for ; Fri, 9 Jan 2004 06:33:55 -0800 (PST) Received: from mailtoaster1.pipeline.ch (mailtoaster1.pipeline.ch [62.48.0.70]) by mx1.FreeBSD.org (Postfix) with ESMTP id DAF6243D54 for ; Fri, 9 Jan 2004 06:33:49 -0800 (PST) (envelope-from andre@freebsd.org) Received: (qmail 2248 invoked from network); 9 Jan 2004 14:33:49 -0000 Received: from unknown (HELO freebsd.org) ([62.48.0.53]) (envelope-sender ) by mailtoaster1.pipeline.ch (qmail-ldap-1.03) with SMTP for ; 9 Jan 2004 14:33:49 -0000 Message-ID: <3FFEBBC9.A42EDC25@freebsd.org> Date: Fri, 09 Jan 2004 15:33:45 +0100 From: Andre Oppermann X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: silby@silby.com References: <200401081740.i08He8J9063202@repoman.freebsd.org> <3FFEAFC2.8070303@freebsd.org> <36749.158.6.15.27.1073658317.squirrel@webmail.pair.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: davidxu@freebsd.org cc: cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/netinet ip_icmp.c tcp.h tcp_input.c tcp_subr.ctcp_usrreq.c tcp_var.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jan 2004 14:33:55 -0000 silby@silby.com wrote: > > > David Xu wrote: > >> > >> I got following messages when I am running mysql stress test suite, > >> and the test can not be completed. > >> > >> "too many small tcp packets from 128.0.0.1:20672, av. 91byte/packet, > >> dropping connection" > > > > You can set net.inet.tcp.minmssoverload to a higher value than the > > default of 1,000. I suggest trying with 2,000 as next step and see if > > it still overloads. > > > > Appearently my default of 1,000 pps is fine for normal use but too low > > for some edge cases. > > > > Could you check the MySQL source code if it has a setsockopt() setting > > the TCP_NODELAY option? That would help to explain a lot. > > > > -- > > Andre > > This might nerf the protection a bit, but could reduce the packet counter > once for each socket write the local machine does? That should protect > chatty applications, but still detect those that are just flooding data to > a bulk service like ftp or smtp. It doesn't help in this case as we don't have any control over the sender and thus don't know whether he has set TCP_NODELAY. I suspect that the database(s) are setting TCP_NODELAY and do a write() for every record they have retrieved from the query result. Yet one more who has been fooled by the name "TCP_NODELAY". The database would be better off and have more performance not using nodelay and let Nagle do its work. -- Andre