Commit Graph

385 Commits

Author SHA1 Message Date
Donghao Qiu 2d8546a3c4
Generate tests with the real names (#26427)
Generates performance tests with real names instead of uuids. This allows test names to be up to 253 characters long, which is now supported by the framework.
2021-06-14 12:58:11 -07:00
Paulo Castello da Costa e76afe5457
Update load test template and config generation. (#26398)
* Update load test template and config generation.

This change includes the following features and fixes:

* Add a script to generate load test examples.
* Update template generation logic to support round trip from configs to templates (handling of repeated clients and servers for the same language and of named clients and servers in source configs).
* Integrate safe language names from scenario config.
* Update template and config formatting (now that we generate in round trip).
* Fix shellcheck lint warnings.
* Update README.md.
2021-06-02 12:57:32 -07:00
Paulo Castello da Costa 8bdbb74425
Fix driver configuration in loadtest templates. (#26372)
This change fixes the format and location of the images in the driver configuration, so tests run with the proper driver configuration instead of a default.
2021-05-26 05:02:20 -07:00
Paulo Castello da Costa 28e73716c7
Support for multiple clients and other improvements in load test config generation. (#26350)
This change adds the following features and improvements to load test generation:

* Multiple client instances are supported by setting the option `--instances_per_client`.
* `python_asyncio` is supported as a separate language.
* `php` is renamed to `php7` to match the scenario language names.
* Client and server names are shortened by the introduction of an index (`0`, `1`, ... with an optional prefix). This index replaces the uuid added to pod names when no component name is specified.
* Driver pool and image substitution are added to template generation.
* Empty entries are removed from the final configuration.

NOTE: Controller is currently not respecting driver settings from configuration, so driver is still named with a uuid. This will be addressed separately.
2021-05-25 10:13:33 -07:00
AJ Heller 12372fb69f
Fix invalid argument in README example for loadtest_config.py (#26277)
This example crashes the driver process, since `bq_upload_result.py` expects
the `big_query_table` argument to have the format `<dataset name>.<table name>`.
The project ID is already encoded in the script.

```
+ python3 /src/code/tools/run_tests/performance/bq_upload_result.py --bq_result_table=grpc-testing.e2e_benchmarks.experimental_results_hork_x5
Traceback (most recent call last):
  File "/src/code/tools/run_tests/performance/bq_upload_result.py", line 177, in <module>
    dataset_id, table_id = args.bq_result_table.split('.', 2)
ValueError: too many values to unpack (expected 2)
```
2021-05-20 08:53:37 -07:00
Paulo Castello da Costa 1e187b58db
Run all kokoro performance tests on dedicated node pools. (#26286)
* Run all kokoro performance tests on dedicated node pools.

Both official and experimental tests run with kokoro are set to run on separate node pools with the suffix "-ci" (drivers-ci, workers-8core-ci, workers-32core-ci), separate from the default pools used for manual runs.
2021-05-18 22:49:23 -07:00
Wanlin Du 8a2754487c
Employ prebuilt images in continuous build. (#26184)
* Employ prebuilt images in continuous build.

This commits updated Kokoro build job to use prebuilt images to
run tests. The loadtest template was generated using
loadtest_template.py.
2021-05-11 15:08:41 -07:00
Paulo Castello da Costa 1c49176a24
Add load test that measures QPS for dashboard display. (#26153)
This changes adds a test that measures QPS. The tests currently running measure latency, which is more variable.
2021-05-04 10:46:29 +02:00
Paulo Castello da Costa 44a4a2ea62
Fix typos and format of LoadTest generator output. (#26149)
This change fixes typos and makes minor changes to the format of the generated yaml files for LoadTest configuration (embedded scenarios end in newline, and element lists are indented). The templates generated earlier are also updated.
2021-05-03 00:07:20 -07:00
Paulo Castello da Costa 2fc80c234b
Do not use flow style when dumping LoadTest configurations. (#26071) 2021-04-23 08:01:37 -07:00
Paulo Castello da Costa 4c7bd972d3
Fix saving results to BigQuery from Kokoro in OSS benchmarks. (#26049) 2021-04-22 09:41:09 +02:00
Paulo Castello da Costa 16897e94d3
Delete duplicate paragraph and fix typos in README. (#26052) 2021-04-22 09:39:30 +02:00
Paulo Castello da Costa bb418da2b5
Run example benchmarks v2 test in continuous build. (#25976)
This commit includes the following changes:

1. A new load test template generator (loadtest_template.py) is added. The template generator combines existing configurations or templates for several languages into a single template that can be used to generate configurations for different languages or combinations of languages.

2. A basic template generated from the example tests in grpc/test-infra (loadtest_template_basic_all_languages.yaml) is added.

3. The load test config generator is updated to use the combined template.

4. An example run consisting of a single test (generated from the combined template) is added and set up to run continuously.
2021-04-20 21:50:35 -07:00
Paulo Castello da Costa 3ad2e3185f
LoadTest generator for OSS benchmarks framework. (#25781)
* LoadTest generator for OSS benchmarks framework.

This change adds a LoadTest configuration generator for the OSS
benchmarks framework. The output of the generator is a multipart
YAML file that specifies uniquely named LoadTest resources that
can be applied to a kubernetes cluster.

For the benchmarks framework, see  https://github.com/github/test-infra.
2021-04-06 15:19:17 -07:00
Yash Tibrewal 13a4888183 Remove disrespectful terms 2021-02-08 14:51:06 -08:00
Sergii Tkachenko 8db79e2e71 Python style: reformat code using updated yapf 0.30.0 2021-01-13 14:00:12 -05:00
Jan Tattermusch 8b775834d6 add "scenarios" top level element 2020-12-02 10:56:41 +01:00
Jan Tattermusch 4dfd34f002 add a simple export tool for JSON performance scenarios 2020-10-28 13:05:58 +01:00
Patrice Chalin 891ca8a443 Guides links updates 2020-06-16 08:58:33 -04:00
Lidi Zheng d657d73565 Integrate existing gRPC Python stack benchmarks with Bazel 2020-02-26 16:56:12 -08:00
Lidi Zheng fdbeb3c5c3 Enforce 1 channel per client 2020-02-18 16:28:18 -08:00
Lidi Zheng c22b161d4e Improve benchmark automations:
1. Use monotonic time;
2. Improve readabilities;
3. Add two more fields for number of processes.
2020-02-18 16:28:18 -08:00
Lidi Zheng 50a7c863dd Add nto1 scenario between aio and C++ 2020-02-18 16:28:18 -08:00
Lidi Zheng 72514e9bf4 Adding more comments & fix the outstanding channel count 2020-02-18 16:27:29 -08:00
Lidi Zheng 4819d8ba6e Improve scenario configs & plumb through channel arguments 2020-02-18 16:27:29 -08:00
Lidi Zheng 68be8a7742 Improve log readability & polish scenario parameters 2020-02-18 16:27:29 -08:00
Lidi Zheng 03e1bf1071 Fix already cancelled RPC 2020-02-18 16:27:29 -08:00
Lidi Zheng df7d02c887 Make shellcheck happy 2020-02-18 16:27:29 -08:00
Lidi Zheng 32d83a9c28 Use tools/bazel instead of installed bazel 2020-02-18 16:27:29 -08:00
Lidi Zheng c702f7238e s/blaze/bazel/ 2020-02-18 16:27:29 -08:00
Lidi Zheng 3a46fc73dd Use Bazel to build and run aio qps worker 2020-02-18 16:27:29 -08:00
Lidi Zheng e9b1cddb97 Fix the cpp server scenarios 2020-02-18 16:27:29 -08:00
Lidi Zheng 88077403cb Add full capacity benchmark scenario 2020-02-18 16:27:29 -08:00
Lidi Zheng 8bede2fe91 Explicitly disable fork support 2020-02-18 16:27:29 -08:00
Lidi Zheng 8a70e757fa Re-enable all scenarios 2020-02-18 16:27:29 -08:00
Lidi Zheng 5e2114d92f Fix the sub worker 2020-02-18 16:27:29 -08:00
Lidi Zheng 2d81bd203f Introduce sub workers 2020-02-18 16:27:28 -08:00
Lidi Zheng e0f235ed99 Unconstrained? 2020-02-18 16:26:41 -08:00
Lidi Zheng 37bb427c03 Make run_worker_python.sh an executable 2020-02-18 16:26:41 -08:00
Lidi Zheng 85eb4c17fb Use Python3.6 v2 2020-02-18 16:26:41 -08:00
Lidi Zheng 2e4e4f72c1 Use Python3.6 instead of Python3.7 2020-02-18 16:26:41 -08:00
Lidi Zheng d309d35934 Fix the build performance for python_asyncio 2020-02-18 16:26:41 -08:00
Lidi Zheng 6f343fc758 Make sanity tests happy 2020-02-18 16:26:41 -08:00
Lidi Zheng 5d46af6c19 Fix typo in build_performance.sh 2020-02-18 16:26:41 -08:00
Lidi Zheng 1ba37eebd2 Add Python AsyncIO to the party 2020-02-18 16:26:41 -08:00
Lidi Zheng 57c6450dda
Merge pull request #21881 from lidizheng/fix-full-perf
Stop building performance artifacts for Android
2020-02-04 09:49:43 -08:00
Lidi Zheng c53dd61dc7 Stop building for Android 2020-02-03 13:37:22 -08:00
Ben Reed 01457b2b5a
Add ignore android flag in performance README.md
The tools/run_tests/performance/README.md file provides an example to
run workers in Java.  However, this example does not work out of the
box, because the Java build requires an Android SDK. This change adds a
Gradle flag `-PskipAndroid=true` to the existing example, allowing it to
work as intended.

Signed-off-by: Ben Reed <benreed@google.com>
2020-01-30 14:17:10 -08:00
Esun Kim 7be821ac47 Yapf all target python sources 2020-01-03 09:25:10 -08:00
chentanjun 4ecc1fe6a4 fix the wrong word 2019-10-01 05:13:33 +08:00
Jan Tattermusch 0d6eec8b8f a few fixes for run_performance_tests.py flame graph generators 2019-08-01 20:26:58 +02:00
Stanley Cheung 0a8fbd2a67 Fix broken php7 performance benchmarks build 2019-03-18 15:12:46 -07:00
Jan Tattermusch c586eea27e adjust run_*tests.py 2019-03-11 07:59:33 -04:00
Yash Tibrewal abcd5861eb Nuking the poll-cv polling engine 2019-03-07 14:49:24 -08:00
ncteisen 440f734d59 Remove owners for tools/run_tests/performance 2019-02-06 07:39:22 -08:00
Lidi Zheng 8cb2d0546d Upgrade sanity Docker image to debian:stretch
* Use latest pylint in Python 3.7 (they dropped support for PY2)
* Make latest pylint happy
* Forced to upgrade to shellcheck 0.4.4
* Make shellcheck 0.4.4 happy
* Adopt reviewers' advice to reduce global disabled rules
2018-12-10 16:21:49 -08:00
Jan Tattermusch b30218b6e0 C#: use netcoreapp1.1 qps worker 2018-12-04 11:34:15 +01:00
Jan Tattermusch 84c74b67f8 build C++ in benchmarks with cmake 2018-10-22 17:56:53 +02:00
Jan Tattermusch 5d70ac18e0 too many C++ benchmarks considered "smoketest" 2018-10-22 15:32:44 +02:00
Jan Tattermusch eac8b812b4 fixup #16837 2018-10-12 00:11:21 +02:00
Jan Tattermusch 22c6257040 only build with python27 in performance benchmarks 2018-10-11 21:27:19 +02:00
Jan Tattermusch 96ae5f9aaa make sure port server runs locally too 2018-10-10 18:37:50 +02:00
Jan Tattermusch ef9cd82b08 fix build of performance benchmarks 2018-10-04 11:21:37 +02:00
Michael Lumish 44f1270649
Merge pull request #15175 from murgatroid99/node_perf_tests_again
Add Node perf tests for both implementations
2018-08-16 09:39:09 -07:00
Jan Tattermusch 52e17d7d0b correctly set performance job metadata on kokoro 2018-08-14 10:37:13 +02:00
Jan Tattermusch 9e5550a741 remove matt-kwong from OWNERS 2018-08-10 19:42:17 +02:00
murgatroid99 2f4fabaf78 Remove added line in node perf build script 2018-08-09 13:23:05 -07:00
murgatroid99 5c60aa43ad Merge remote-tracking branch 'upstream/master' into node_perf_tests_again 2018-08-03 14:48:26 -07:00
murgatroid99 70a8aa4a7d Make Node perf build script idempotent, update to newer Node version 2018-08-03 14:40:25 -07:00
Alexander Polcyn a2160f547f Wait a configurable amount of time for benchmark channels to become ready 2018-07-26 10:45:12 -07:00
murgatroid99 e6631f79e9 Merge branch 'master' into node_perf_tests_again 2018-06-19 13:24:42 -07:00
Jan Tattermusch d2aa698cce fix run_python_qps_worker script 2018-05-20 23:38:56 -07:00
Jan Tattermusch cb37c8e7a0 format generated code 2018-05-18 15:40:18 +02:00
Jan Tattermusch 76bf5c2fd6 regenerate gen_stats_data.py 2018-05-18 15:33:57 +02:00
kpayson64 b54d8a5e14 Yapf 2018-05-16 11:15:37 -07:00
kpayson64 37eb925a06 Add epollex fd cache 2018-05-15 18:42:05 -07:00
Jan Tattermusch c0ed1a8734 format python code 2018-05-15 19:38:52 +02:00
Jan Tattermusch a2f9304349 get rid of premature return in massage_qps_stats 2018-05-15 18:13:00 +02:00
murgatroid99 c44cda2c3d Reformat script code 2018-04-26 15:08:54 -07:00
murgatroid99 fbf3bd460b Fix some issues with Node benchmark scripts 2018-04-26 14:23:49 -07:00
murgatroid99 5f3aa5ca0b Fix sanity 2018-04-24 16:58:58 -07:00
murgatroid99 215b6555c1 Add Node perf tests for both implementations 2018-04-24 16:06:34 -07:00
Vijay Pai d8e292f198 Removing ctiller as owner 2018-02-02 13:55:32 -08:00
Mehrdad Afshari 6322348107 Fix run_worker_ruby.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari c2259b61e3 Fix run_worker_python.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari 89f5502ea2 Fix run_worker_php.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari ab8e86bd3a Fix run_worker_java.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari 924df3faf4 Fix run_worker_go.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari e3564c0a17 Fix run_worker_csharp.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari b97d2a5770 Fix run_qps_driver.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari b882cb6b83 Fix run_netperf.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari 55850b7c13 Fix remote_host_prepare.sh to pass shellcheck (with bugfix) 2018-01-26 12:16:28 -08:00
Mehrdad Afshari 56e2384f0e Fix remote_host_build.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari 52391111e3 Fix process_remote_perf_flamegraphs.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari 9e0cecc6e4 Fix process_local_perf_flamegraphs.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari df7bc0ae02 Make kill_workers.sh pass shellcheck (with suppressions) 2018-01-26 12:16:28 -08:00
Mehrdad Afshari ea2b2e2b13 Fix build_performance.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari be4ec7e69f Fix build_performance_php7.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari a957ce2906 Fix build_performance_go.sh to pass shellcheck 2018-01-26 12:16:28 -08:00
Mehrdad Afshari 87cd994b04 Upgrade yapf to 0.20.0
Upgrade yapf version to 0.20.0 and reformat Python files.
2018-01-02 14:40:00 -08:00