Re: question about 3sec timeouts with tcp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yes, we have changed the back_log settings in my.cnf. We also tried various combinations of the kernel parameters you mentioned in your email - without success.

Have you made any changes on the client (=webserver)? Perhaps it's not a problem of the server (=mysql). As I figured out in my original posting it looks as if the client didn't receive the SYN/ACK package from the server (keep in mind that it is reproducable with lo interface, therefore it's not a hardware problem with cables, switches, ...):

"When you look at the TCP pakets transmitted between server and client (tcpdump) you will see that the client sends a SYN and the server answers with a SYN/ACK. However the client will never receive the SYN/ACK. Therefore the client resends a SYN after exactly 3 seconds. The server answers with a SYN/ACK again and this time the client receives the paket. Now the connection is working."

On friday I received an email from another user having the same problem. As I mentioned in my last email: we are not alone ;-)

Many thanks for your help.

Kind regards,
Leo

Marlon de Boer wrote:
Leo wrote:
We discovered the same problem two month ago (even 3 sec connect
problems between webserver and mysql backend). I have posted it to
the list (subject "TCP connect hangs for 3 seconds", 2008-02-04)
but didn't get any answer yet. When I read your mail it was a
flicker of hope.

This is not a mysql issue! You can easily reproduce it with a few
lines of C code (see below, it's similar to your program) running
against any open port on the server (e.g. netcat: nc -k -l
<PORTNUMBER>). We have also tested it on different hardware and
kernel versions (up to 2.6.24.4) and we can deliver further
information if requested ...

Unfortunately the kernel parameter you mentioned in your second
mail (net.core.somaxconn) didn't solve the problem.

I think there are many other people out there having this problem
unconsciously. Can anybody help?

I used the c code below to test the server side. After playing with
the kernel settings, some code,
setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) and
listen(sd, 8192) the timeouts disappeared.

Did you changed the settings in mysql.cnf? back_log = 8192, and
restarted the mysql daemon? Else try to raise it to 16384 or even higher.

Regards
Marlon

--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux