>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: <submitter ID>
>Originator: J.F. Dockes <dockes@stripped>
>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
| Thread |
|---|
| • TCP_NODELAY improves select performance by 20 | Jean-Francois Dockes | 30 Mar |