From: Jean-Francois Dockes Date: March 30 1999 8:12pm Subject: TCP_NODELAY improves select performance by 20 List-Archive: http://lists.mysql.com/mysql/1201 Message-Id: <199903302012.WAA25735@yquem100-1.cdkit.remcomp.fr> >Description: Under some conditions (probably linked to the results size), setting TCP_NODELAY on the server sockets can vastly improve mysql "select" answer speed. More specifically, for a data size around 1500-1600 bytes, the time per select goes down from around 100 mS to around 5 mS, with a server running on a redhat 5.1 intel system. On another system (redhat 4.2 running mysql-3.21.33b), the time went down from 34mS to < 3mS. Of course this affects how much time the client waits for the answer, not how much time the server is busy servicing it, so this may be important or not, depending on the environment. >How-To-Repeat: Table structure: CREATE TABLE session ( sid varchar(80) DEFAULT '' NOT NULL, sestxt blob, upddate timestamp(14), PRIMARY KEY (sid) ); The test selects on 'sid'. The blob size is around 1500-1600 bytes. >Fix: Just inconditionnaly compile the server to set TCP_NODELAY in net_serv.c:my_net_init(). >Submitter-Id: >Originator: J.F. Dockes >Organization: --- Jean-Francois Dockes, CDKIT SA dockes@stripped Tel: +33 1 41 12 04 44 Fax: +33 1 41 12 04 47 56 Boulevard de la Republique 92210 SAINT CLOUD. FRANCE > >MySQL support: none >Synopsis: TCP_NODELAY improves select performance by 20 >Severity: non-critical >Priority: low >Category: mysql >Class: sw-bug >Release: mysql-3.22.14b-gamma (Source distribution) >Server: mysqladmin Ver 7.8 Distrib 3.22.14b-gamma, for pc-linux-gnu on i686 TCX Datakonsult AB, by Monty Server version 3.22.14b-gamma Protocol version 9 Connection Localhost via UNIX socket UNIX socket /tmp/mysql.sock Uptime: 18 min 11 sec Threads: 1 Questions: 22538 Slow queries: 1 Opens: 11 Flush tables: 1 Open tables: 2 >Environment: Pentium II/350 System: Linux mouton 2.0.36 #20 Tue Jan 26 14:03:31 WET 1999 i686 unknown Architecture: i686 redhat 5.1 The client was a sparc/solaris, but the 30->3 test was done with a linux client. Some paths: /usr/bin/perl /usr/bin/make /usr/bin/gmake /usr/bin/gcc /usr/bin/cc GCC: Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.7.2.3/specs gcc version 2.7.2.3 Compilation info: CC='gcc' CFLAGS='' CXX='c++' CXXFLAGS='' LDFLAGS='' Configure command: ./configure Perl: This is perl, version 5.004_04 built for i386-linux To: mysql@stripped Subject: TCP_NODELAY improves select performance by 20