mirror of https://github.com/grpc/grpc.git
Merge pull request #13538 from matt-kwong/kokoro-multi-vm
Add multi-lang performance benchmarking jobs to Kokoropull/13584/head
commit
74a53c2440
6 changed files with 148 additions and 2 deletions
@ -0,0 +1,40 @@ |
||||
#!/bin/bash |
||||
# Copyright 2017 gRPC authors. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
# Source this rc script to prepare the environment for linux perf builds |
||||
|
||||
# Need to increase open files limit and size for perf test |
||||
ulimit -n 32768 |
||||
ulimit -c unlimited |
||||
|
||||
# Download non-core gRPC repos |
||||
git clone --recursive https://github.com/grpc/grpc-go ./../grpc-go |
||||
git clone --recursive https://github.com/grpc/grpc-java ./../grpc-java |
||||
git clone --recursive https://github.com/grpc/grpc-node ./../grpc-node |
||||
|
||||
sudo pip install tabulate |
||||
|
||||
# Set up Ruby |
||||
export PATH="$HOME/.rbenv/bin:$PATH" |
||||
eval "$(rbenv init -)" |
||||
gem list bundler |
||||
gem install bundler --no-ri --no-rdoc |
||||
|
||||
# Allow SSH to Kokoro performance workers without explicit key verification |
||||
gsutil cp gs://grpc-testing-secrets/grpc_kokoro_performance_ssh_keys/id_rsa ~/.ssh |
||||
echo -e 'Host grpc-kokoro-performance*\n\tStrictHostKeyChecking no' >> ~/.ssh/config |
||||
chmod 600 ~/.ssh/id_rsa ~/.ssh/config |
||||
|
||||
git submodule update --init |
@ -0,0 +1,25 @@ |
||||
# Copyright 2017 gRPC authors. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
# Config file for the internal CI (in protobuf text format) |
||||
|
||||
# Location of the continuous shell script in repository. |
||||
build_file: "grpc/tools/internal_ci/linux/grpc_full_performance_master.sh" |
||||
timeout_mins: 600 |
||||
action { |
||||
define_artifacts { |
||||
regex: "**/*sponge_log.xml" |
||||
regex: "**/perf_reports/**" |
||||
} |
||||
} |
@ -0,0 +1,59 @@ |
||||
#!/usr/bin/env bash |
||||
# Copyright 2017 gRPC authors. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
set -ex |
||||
|
||||
# Enter the gRPC repo root |
||||
cd $(dirname $0)/../../.. |
||||
|
||||
source tools/internal_ci/helper_scripts/prepare_build_linux_perf_multilang_rc |
||||
|
||||
# run 8core client vs 8core server |
||||
tools/run_tests/run_performance_tests.py \ |
||||
-l c++ csharp ruby java python go php7 php7_protobuf_c \ |
||||
--netperf \ |
||||
--category scalable \ |
||||
--remote_worker_host grpc-kokoro-performance-server-8core grpc-kokoro-performance-client-8core grpc-kokoro-performance-client2-8core \ |
||||
-u kbuilder \ |
||||
--bq_result_table performance_test.kokoro_performance_experiment \ |
||||
--xml_report reports/8core/sponge_log.xml \ |
||||
|| EXIT_CODE=1 |
||||
|
||||
# prevent pushing leftover build files to remote hosts in the next step. |
||||
git clean -fdxq -e reports |
||||
|
||||
# scalability with 32cores (and upload to a different BQ table) |
||||
tools/run_tests/run_performance_tests.py \ |
||||
-l c++ java csharp go \ |
||||
--netperf \ |
||||
--category scalable \ |
||||
--remote_worker_host grpc-kokoro-performance-server-32core grpc-kokoro-performance-client-32core grpc-kokoro-performance-client2-32core \ |
||||
-u kbuilder \ |
||||
--bq_result_table performance_test.kokoro_performance_experiment_32core \ |
||||
--xml_report reports/32core/sponge_log.xml \ |
||||
|| EXIT_CODE=1 |
||||
|
||||
# prevent pushing leftover build files to remote hosts in the next step. |
||||
git clean -fdxq -e reports |
||||
|
||||
# selected scenarios on Windows |
||||
tools/run_tests/run_performance_tests.py \ |
||||
-l csharp \ |
||||
--category scalable \ |
||||
--remote_worker_host grpc-kokoro-performance-windows1 grpc-kokoro-performance-windows2 \ |
||||
--bq_result_table performance_test.kokoro_performance_experiment_windows \ |
||||
--xml_report reports/windows/sponge_log.xml \ |
||||
|| EXIT_CODE=1 |
||||
|
||||
exit $EXIT_CODE |
Loading…
Reference in new issue