On 01/09/2014 04:16 PM, Russell Bryant wrote:
> On 01/08/2014 05:53 PM, Joe Gordon wrote:
>> Hi All, 
>>
>> As you know the gate has been in particularly bad shape (gate queue over
>> 100!) this week due to a number of factors. One factor is how many major
>> outstanding bugs we have in the gate.  Below is a list of the top 4 open
>> gate bugs.
>>
>> Here are some fun facts about this list:
>> * All bugs have been open for over a month
>> * All are nova bugs
>> * These 4 bugs alone were hit 588 times which averages to 42 hits per
>> day (data is over two weeks)!
>>
>> If we want the gate queue to drop and not have to continuously run
>> 'recheck bug x' we need to fix these bugs.  So I'm looking for
>> volunteers to help debug and fix these bugs.
> 
> I created the following etherpad to help track the most important Nova
> gate bugs. who is actively working on them, and any patches that we have
> in flight to help address them:
> 
>   https://etherpad.openstack.org/p/nova-gate-issue-tracking
> 
> Please jump in if you can.  We shouldn't wait for the gate bug day to
> move on these.  Even if others are already looking at a bug, feel free
> to do the same.  We need multiple sets of eyes on each of these issues.
> 

Some good progress from the last few days:

After looking at a lot of failures, we determined that the vast majority
of failures are performance related.  The load being put on the
OpenStack deployment is just too high.  We're working to address this to
make the gate more reliable in a number of ways.

1) (merged) https://review.openstack.org/#/c/65760/

The large-ops test was cut back from spawning 100 instances to 50.  From
the commit message:

  It turns out the variance in cloud instances is very high, especially
  when comparing different cloud providers and regions. This test was
  originally added as a regression test for the nova-network issues with
  rootwrap. At which time this test wouldn't pass for 30 instances.  So
  50 is still a valid regression test.

2) (merged) https://review.openstack.org/#/c/45766/

nova-compute is able to do work in parallel very well.  nova-conductor
can not by default due to the details of our use of eventlet + how we
talk to MySQL.  The way you allow nova-conductor to do its work in
parallel is by running multiple conductor workers.  We had not enabled
this by default in devstack, so our 4 vCPU test nodes were only using a
single conductor worker.  They now use 4 conductor workers.

3) (still testing) https://review.openstack.org/#/c/65805/

Right now when tempest runs in the devstack-gate jobs, it runs with
concurrency=4 (run 4 tests at once).  Unfortunately, it appears that
this maxes out the deployment and results in timeouts (usually network
related).

This patch changes tempest concurrency to 2 instead of 4.  The initial
results are quite promising.  The tests have been passing reliably so
far, but we're going to continue to recheck this for a while longer for
more data.

One very interesting observation on this came from Jim where he said "A
quick glance suggests 1.2x -- 1.4x change in runtime."  If the
deployment were *not* being maxed out, we would expect this change to
result in much closer to a 2x runtime increase.

4) (approved, not yet merged) https://review.openstack.org/#/c/65784/

nova-network seems to be the largest bottleneck in terms of performance
problems when nova is maxed out on these test nodes.  This patch is one
quick speedup we can make by not using rootwrap in a few cases where it
wasn't necessary.  These really add up.

5) https://review.openstack.org/#/c/65989/

This patch isn't a candidate for merging, but was written to test the
theory that by updating nova-network to use conductor instead of direct
database access, nova-network will be able to do work in parallel better
than it does today, just as we have observed with nova-compute.

Dan's initial test results from this are **very** promising.  Initial
testing showed a 20% speedup in runtime and a 33% decrease in CPU
consumption by nova-network.

Doing this properly will not be quick, but I'm hopeful that we can
complete it by the Icehouse release.  We will need to convert
nova-network to use Nova's object model.  Much of this work is starting
to catch nova-network up on work that we've been doing in the rest of
the tree but have passed on doing for nova-network due to nova-network
being in a freeze.

6) (no patch yet)

We haven't had time to dive too deep into this yet, but we would also
like to revisit our locking usage and how it is affecting nova-network
performance.  There may be some more significant improvements we can
make there.


Final notes:

I am hopeful that by addressing these performance issues both in Nova's
code, as well as by turning down the test load, that we will see a
significant increase in gate reliability in the near future.  I
apologize on behalf of the Nova team for Nova's contribution to gate
instability.

*Thank you* to everyone who has been helping out!

-- 
Russell Bryant

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to