Merge pull request #8768 from jtattermusch/windows_performance_tests

Enable running C# benchmarks on Windows
pull/8815/head
Jan Tattermusch 8 years ago committed by GitHub
commit 66de9494af
  1. 8
      tools/jenkins/run_full_performance.sh
  2. 16
      tools/run_tests/performance/build_performance.sh
  3. 17
      tools/run_tests/performance/remote_host_prepare.sh

@ -52,4 +52,12 @@ tools/run_tests/run_performance_tests.py \
--remote_worker_host grpc-performance-server-32core grpc-performance-client-32core grpc-performance-client2-32core \ --remote_worker_host grpc-performance-server-32core grpc-performance-client-32core grpc-performance-client2-32core \
|| EXIT_CODE=1 || EXIT_CODE=1
# selected scenarios on Windows
tools/run_tests/run_performance_tests.py \
-l csharp \
--category scalable \
--bq_result_table performance_test.performance_experiment_windows \
--remote_worker_host grpc-performance-windows1 grpc-performance-windows2 \
|| EXIT_CODE=1
exit $EXIT_CODE exit $EXIT_CODE

@ -37,10 +37,14 @@ CONFIG=${CONFIG:-opt}
# build C++ qps worker & driver always - we need at least the driver to # build C++ qps worker & driver always - we need at least the driver to
# run any of the scenarios. # run any of the scenarios.
# TODO(jtattermusch): not embedding OpenSSL breaks the C# build because # TODO(jtattermusch): C++ worker and driver are not buildable on Windows yet
# grpc_csharp_ext needs OpenSSL embedded and some intermediate files from if [ "$OSTYPE" != "msys" ]
# this build will be reused. then
make CONFIG=${CONFIG} EMBED_OPENSSL=true EMBED_ZLIB=true qps_worker qps_json_driver -j8 # TODO(jtattermusch): not embedding OpenSSL breaks the C# build because
# grpc_csharp_ext needs OpenSSL embedded and some intermediate files from
# this build will be reused.
make CONFIG=${CONFIG} EMBED_OPENSSL=true EMBED_ZLIB=true qps_worker qps_json_driver -j8
fi
for language in $@ for language in $@
do do
@ -55,10 +59,10 @@ do
tools/run_tests/performance/build_performance_go.sh tools/run_tests/performance/build_performance_go.sh
;; ;;
"csharp") "csharp")
tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8 --compiler coreclr python tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8 --compiler coreclr
;; ;;
*) *)
tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8 python tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8
;; ;;
esac esac
done done

@ -32,18 +32,23 @@ set -ex
cd $(dirname $0)/../../.. cd $(dirname $0)/../../..
# cleanup after previous builds
ssh "${USER_AT_HOST}" "rm -rf ~/performance_workspace && mkdir -p ~/performance_workspace"
# TODO(jtattermusch): To be sure there are no running processes that would # TODO(jtattermusch): To be sure there are no running processes that would
# mess with the results, be rough and reboot the slave here # mess with the results, be rough and reboot the slave here
# and wait for it to come back online. # and wait for it to come back online.
# could also kill jenkins. ssh "${USER_AT_HOST}" "killall -9 qps_worker dotnet mono node ruby worker || true"
ssh "${USER_AT_HOST}" "killall -9 qps_worker mono node ruby worker || true"
# On Windows, killall is not supported & we need to kill all pending workers
# before attempting to delete the workspace
ssh "${USER_AT_HOST}" "ps -e | egrep 'qps_worker|dotnet' | awk '{print $1}' | xargs kill -9 || true"
# cleanup after previous builds
ssh "${USER_AT_HOST}" "rm -rf ~/performance_workspace && mkdir -p ~/performance_workspace"
# push the current sources to the slave and unpack it. # push the current sources to the slave and unpack it.
scp ../grpc.tar "${USER_AT_HOST}:~/performance_workspace" scp ../grpc.tar "${USER_AT_HOST}:~/performance_workspace"
ssh "${USER_AT_HOST}" "tar -xf ~/performance_workspace/grpc.tar -C ~/performance_workspace" # Windows workaround: attempt to untar twice, first run is going to fail
# with symlink creation error(s).
ssh "${USER_AT_HOST}" "tar -xf ~/performance_workspace/grpc.tar -C ~/performance_workspace || tar -xf ~/performance_workspace/grpc.tar -C ~/performance_workspace"
# For consistency with local run, invoke the kill_workers script remotely. # For consistency with local run, invoke the kill_workers script remotely.
ssh "${USER_AT_HOST}" "~/performance_workspace/grpc/tools/run_tests/performance/kill_workers.sh" ssh "${USER_AT_HOST}" "~/performance_workspace/grpc/tools/run_tests/performance/kill_workers.sh"

Loading…
Cancel
Save