← Back to team overview

mysql-proxy-discuss team mailing list archive

Re: MySql Proxy 0.7.2 - Network timeout configuration

 

Hi!

On Jul 31, 2009, at 9:56 PM, Mike Gent wrote:

While I can't speak about platforms, there are a few things on Linux you can change. I'm surprised this hasn't come up earlier, b/c this is a big deal with redundancy testing. When testing mysql-proxy between a primary
and failover server, don't just stop the primary DB, but shutdown the
primary host (shutting down a VM is easiest if possible). It will be
painfully obvious that the timeouts are going to be a problem.

Linux kernel config options at startup (RedHat/CentOS, not sure about
other distros):
net.ipv4.tcp_syn_retries = 0
net.ipv4.tcp_retries2 = 1

You can change these options while the system is running:
echo 0 > /proc/sys/net/ipv4/tcp_syn_retries
echo 1 > /proc/sys/net/ipv4/tcp_retries2

Since not all systems will have options to change these timeouts and
retries, I +1 the need for an alarm thread in the proxy.


+1 from me as well.
dealing with tcp timeouts, especially TIME_WAIT and FIN_WAIT_2 might be problematic with very high connection counts. unfortunately there's not too much you can do about it in general right now.

maybe it would be worthwhile to start assembling this kind of information on a wiki page and/or in the documentation,
so we can point people to it for different platforms.

we are busy looking at different test scenarios right now and starting to implement various kinds of system testcases to verify we gracefully handle common cases (these are sparsely documented in trunk's doxygen right now). we plan to opensource all of these alongside proxy, of course, to make it possible for others to verify our findings, verify the validity of the code and also make it possible to reuse them in other contexts (since they are really just
using mysql connections and don't require a proxy in the middle).
if you have input on what kind of testing you would need to see to be convinced that proxy actually solves problems you
are seeing, please share them (on- or off-list however you prefer).
we will try hard to integrate them in our test harness.

btw, we will most likely end up using Faban (http:// faban.sunsource.net/) for this kind of benchmarks because of the
flexibility it offers in driving high loads.
pointers to other benchmark drivers we might not be aware of is much appreciated as well.

cheers,
-k
--
Kay Roepke
Software Engineer, MySQL Enterprise Tools

Sun Microsystems GmbH    Sonnenallee 1, DE-85551 Kirchheim-Heimstetten
Geschaeftsfuehrer:    Thomas Schroeder,  Wolfang Engels,  Wolf Frenkel
Vorsitz d. Aufs.rat.: Martin Haering                    HRB MUC 161028




References