For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

Rich_79422's avatar
Rich_79422
Icon for Nimbostratus rankNimbostratus
May 28, 2014

LTM 10.2.4 HF7, MySQL occasional 3 second delay

Good morning,

This is the situation I have been dealing with for some time. occasionally when a MySQL Client makes a initial SYN request, I see the MySQL DB send the Initial SYN.ACK, but this initial SYN.ACK never makes it back to the F5. The F5 is the Default Gateway for the DB Server. So as typical TCP in 3 seconds it send a retransmitted SYN to the DB, and this time the F5 does see the SYN.ACK, and after that all communications works just fine.

Everything looks good then again out of the blue I will see this occasional 3 second retransmission.

It does not look to be F5 Related, or even Network Related. The VS on the F5 has the same issue if I use a Standard or FastL4 VS. Any profile setting does not make a difference.

The Host OS's are both Linux running kernel 2.6.18-274.0.0.0.1.el5, x86_64 x86_64 x86_64 GNU/Linux. ipv6 is disabled on the server and client. MySQL is mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1.

If I take a trace from the F5 and the DB at the same time, On the DB I see the initial SYN.ACK leaving the DB server, but I never see it coming back to the F5.

The strange thing is if I move the DB in front of the F5 the problem looks to go away. But I have not really taken a TCP capture from the DB in this scenario. Just ran the basic test.

This is the Script I run from the client to test:

!/bin/bash

LOG_OUTPUT_PATH="/tmp/mysqlconnectbench.log"; SHOW_LONG_ONLY=1; SHOW_STATS=1; DB_INFO='-hxxx.xxx.xxx.xxx -uusername -ppassword -P3306' mysql $DB_INFO -e';' && ((for ((n=0;n<100000;n++)) do (xt=

date +%s%N
&& threadcount=
mysql $DB_INFO -e 'SHOW STATUS WHERE variable_name="Threads_connected"'| grep 'connected' | awk '{print $2,$4}'| tr -d ' '
&& xt2=
date +%s%N
&& xtdiff=
expr $xt2 - $xt
&& xtdiff=
expr ${xtdiff} / 1000000
&& if [[ ${SHOW_STATS} == 1 ]]; then statstr=" [${n} / dbprocs: ${threadcount}] date +%T``"; fi; if [[ ${xtdiff} -gt 100 ]]; then echo "**LONG** ${xtdiff} ms ${statstr} `date +%T`"; else (if [[ ${SHOW_LONG_ONLY} != 1 ]]; then echo "${xtdiff} ms ${statstr}"; fi;) fi;); done; ) | tee "${LOG_OUTPUT_PATH}") || echo ' ***** CONNECTION FAILED / PROCESS TERMINATED ****';

I was wondering if anybody else had run into a similar issue and what was done to rectify the situation?

No RepliesBe the first to reply