<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hey neutron dev!</span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Im having a serious problem with my neutron router getting spin locked in nf_conntrack_tuple_taken.</div>
<div style="font-family:arial,sans-serif;font-size:13px">Has anybody else experienced it?</div><div style="font-family:arial,sans-serif;font-size:13px">"perf top" shows nf_conntrack_tuple_taken at 75%</div><div style="font-family:arial,sans-serif;font-size:13px">
As the incoming request rate goes up, so nf_conntrack_tuple_taken runs very hot on CPU0 causing ksoftirqd/0 to run at 100%. At that point internal pings on the GRE network go sky high and its game over. Pinging from a vm to the subnet default gateway on the neutron goes from 0.2ms to 11s! pinging from the same vm to another vm in the same subnet stays constant at 0.2ms.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Very much indicates to me that the neutron router is having serious problems.</div><div style="font-family:arial,sans-serif;font-size:13px">
No other part of the system seems under pressure.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">ipv6 is disabled, and nf_conntrack_max/nf_conntrack_hash are set to 256k.</div>
<div style="font-family:arial,sans-serif;font-size:13px">We've tried the default 3.13 and the utopic 3.16 kernel (3.16 has lots of work on removing spinlocks around nf_conntrack). 3.16 survives a little longer but still gets in the same state</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Neutron router</div><div style="font-family:arial,sans-serif;font-size:13px">1 x Ubuntu 14.04/Icehouse 2014.1.1 on an ibm x3550 with 4 10G intel nics.</div>
<div style="font-family:arial,sans-serif;font-size:13px">eth0 - Mgt</div><div style="font-family:arial,sans-serif;font-size:13px">eth1 - GRE</div><div style="font-family:arial,sans-serif;font-size:13px">eth2 - Public</div>
<div style="font-family:arial,sans-serif;font-size:13px">eth3 - unusedĀ </div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Compute/controller nodes</div>
<div style="font-family:arial,sans-serif;font-size:13px">43 x Ubuntu 14.04/Icehouse 2014.1.1 ibm x240 flex blades with 4 emulex nics</div><div style="font-family:arial,sans-serif;font-size:13px">eth0 Mgt</div><div style="font-family:arial,sans-serif;font-size:13px">
eth2 GRE</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Any help very much appreciated!</div><div style="font-family:arial,sans-serif;font-size:13px">
Replace the l2/l3 functions with hardware is very much an option if thats a better solution.</div><div style="font-family:arial,sans-serif;font-size:13px">Im running out of time before my client decides to stay on AWS.</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
BR,</div><div style="font-family:arial,sans-serif;font-size:13px">Stuart</div></div>