Commit Graph

5 Commits

Author SHA1 Message Date
Chris Dent
ed03085187 Add apache benchmark (ab) to end of perfload jobs
Start the process of reporting some concurrency numbers by including
a 500 x 10 'ab' run against the query URL used in each perfload job.

There's duplication removal that could be done here, but we leave
that until we've determined if this is working well.

The PLACEMENT_URL is updated to use 127.0.0.1 instead of localhost;
ab will attempt to use the IPV6 version of localhost if that's the
case, and we've not bound the placement server to that interface.

The timeout on the placement-nested-perfload job has been raised to
1 hour as the default 30 minutes is leading to a timeout. If that's
still not enough we'll explore lowering concurrency.

We will quite likely need to adapt the mysql configuration if we
intend to continue down this road.

Change-Id: Ic0bf2ab666dab546dd7b03955473c246fd0f380a
2019-08-06 09:18:44 +01:00
Chris Dent
07d7749cff Implement a more complex nested-perfload topology
This changes gabbits/nested-perfload.yaml to create a tree of
providers based on one of the compute nodes in the NUMANetworkFixture
used in the functional tests. For the time being only one type of
compute node is created (of which there will be 1000 instances).
Room is left for future expansion as requirements expand.

The resulting hierarchy has 7 resource providers.

The allocation candidates query is:

GET /allocation_candidates?
    resources=DISK_GB:10&
    required=COMPUTE_VOLUME_MULTI_ATTACH&
    resources_COMPUTE=VCPU:1,MEMORY_MB:256&
    required_COMPUTE=CUSTOM_FOO&
    resources_FPGA=FPGA:1&
    group_policy=none&
    same_subtree=_COMPUTE,_FPGA

This is a step in the right direction but is not yet a complete
exercising of all the nested functionality. It is, however, more
complex than prior, notably testing 'same_subtree'. We should
continue to iterate to get it doing more.

Change-Id: I67d8091b464cd7b875b37766f52818a5a2faa780
Story: 2005443
Task: 35669
2019-08-06 09:18:39 +01:00
Chris Dent
7464ff6e24 Run nested-perfload parallel correctly
While experimenting with expanding the nested perfload tests,
it became clear that the call to parallel was not working as
expected because the documents were misread. With help from
Tetsuro the correct incantation was determined so that we
use 50% of available CPUs.

This should leave some space for the database and the web
server.

Subsequent patches will add a more complicated nested structure.

Co-Authored-By: Tetsuro Nakamura <tetsuro.nakamura.bc@hco.ntt.co.jp>
Change-Id: Ie4809abc31212711b96f69e5f291104ae761059e
2019-08-06 09:14:58 +01:00
Chris Dent
ed0af2e4aa Fix up some inaccuracies in perfload comments and logs
The review of the addition of nested perfload (in
I617161fde5b844d7f52dc766f85c1b9f1b139e4a ) identified some
inaccuracies in the comments and logs. This fixes some of
those.

It does not, however, fix some of the duplication between the
two runner scripts. This will be done later.

Change-Id: I9c57125e818cc583a977c8155fcefcac2e3b59df
2019-07-01 15:58:29 +00:00
Chris Dent
8723bd7772 Nested provider performance testing
This change duplicates the ideas started in with the placement-perfload
job and builds on it to create a set of nested trees that can be
exercised.

In placement-perfload, placeload is used to create the providers. This
proves to be cumbersome for nested topologies so this change starts
a new model: Using parallel [1] plus instrumented gabbi to create
nested topologies in a declarative fashion.

gate/perfload-server.sh sets up placement db and starts a uwsgi server.

gate/perfload-nested-loader.sh is called in the playbook to cause gabbi
to create the nested topology described in
gate/gabbits/nested-perfload.yaml. That topology is intentionally very
naive right now but should be made more realisitc as we continue to
develop nested features.

There's some duplication between perfload.yaml and
nested-perfload.yaml that will be cleared up in a followup.

[1] https://www.gnu.org/software/parallel/ (although the version on
ubuntu is a non-GPL clone)

Story: 2005443
Task: 30487
Change-Id: I617161fde5b844d7f52dc766f85c1b9f1b139e4a
2019-06-20 12:37:28 +01:00