<div dir="ltr">Hi All,<div><br></div><div>We have recently hit some performance issues with nova-network.  It turns out the root cause of this was we do roughly 20 rootwrapped shell commands, many inside of global locks. (<a href="https://bugs.launchpad.net/oslo/+bug/1199433">https://bugs.launchpad.net/oslo/+bug/1199433</a>)</div>

<div><br></div><div>It turns out starting python itself, has a fairly significant overhead when compared to the run time of many of the binary commands we execute.</div><div><br></div><div>For example:<br><div><br></div>
<div>
<div>$ time python -c "print 'test'"</div><div>test</div><div><br></div><div>real<span class="" style="white-space:pre">    </span>0m0.023s</div><div>user<span class="" style="white-space:pre">       </span>0m0.016s</div>

<div>sys<span class="" style="white-space:pre"> </span>0m0.004s</div></div><div><br></div><div><br></div><div>$ time ip a</div><div><...></div><div><br></div><div><div>real<span class="" style="white-space:pre"> </span>0m0.003s</div>

<div>user<span class="" style="white-space:pre">        </span>0m0.000s</div><div>sys<span class="" style="white-space:pre">        </span>0m0.000s</div></div></div><div><br></div><div><br></div><div>While we have removed the extra overhead of using entry points, we are now hitting the overhead of just shelling out to python.</div>

<div><br></div><div><br></div><div>While there are many possible ways to reduce this issue, such as reducing the number of rootwrapped calls and making locks finer grain, I think its worth exploring alternates to the current rootwrap model.</div>

<div><br></div><div>Any ideas?  I am sending this email out to get the discussion started.</div><div><br></div><div><br></div><div>best,</div><div>Joe Gordon</div></div>