hack/benchmark: change boom to hey

boom has moved to hey, due to a conflicting binary name with another
project
This commit is contained in:
Joshua Deare 2016-10-24 13:02:05 -07:00
parent 0bb2384547
commit 4eefdaa4bb
No known key found for this signature in database
GPG Key ID: 5BA7B07646474B7A
4 changed files with 20 additions and 20 deletions

View File

@ -14,7 +14,7 @@ GCE n1-highcpu-2 machine type
## Testing ## Testing
Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions. Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
## Performance ## Performance
@ -48,5 +48,5 @@ Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send r
| 256 | 64 | all servers | 1033 | 121.5 | | 256 | 64 | all servers | 1033 | 121.5 |
| 256 | 256 | all servers | 3061 | 119.3 | | 256 | 256 | all servers | 3061 | 119.3 |
[boom]: https://github.com/rakyll/boom [hey]: https://github.com/rakyll/hey
[hack-benchmark]: /hack/benchmark/ [hack-benchmark]: /hack/benchmark/

View File

@ -24,7 +24,7 @@ Go OS/Arch: linux/amd64
## Testing ## Testing
Bootstrap another machine, outside of the etcd cluster, and run the [`boom` HTTP benchmark tool](https://github.com/rakyll/boom) with a connection reuse patch to send requests to each etcd cluster member. See the [benchmark instructions](../../hack/benchmark/) for the patch and the steps to reproduce our procedures. Bootstrap another machine, outside of the etcd cluster, and run the [`hey` HTTP benchmark tool](https://github.com/rakyll/hey) with a connection reuse patch to send requests to each etcd cluster member. See the [benchmark instructions](../../hack/benchmark/) for the patch and the steps to reproduce our procedures.
The performance is calulated through results of 100 benchmark rounds. The performance is calulated through results of 100 benchmark rounds.

View File

@ -24,7 +24,7 @@ Also, we use 3 etcd 2.1.0 alpha-stage members to form cluster to get base perfor
## Testing ## Testing
Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions. Bootstrap another machine and use the [hey HTTP benchmark tool][hey] to send requests to each etcd member. Check the [benchmark hacking guide][hack-benchmark] for detailed instructions.
## Performance ## Performance
@ -66,7 +66,7 @@ Bootstrap another machine and use the [boom HTTP benchmark tool][boom] to send r
- write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster. - write QPS to all servers is increased by 30~80% because follower could receive latest commit index earlier and commit proposals faster.
[boom]: https://github.com/rakyll/boom [hey]: https://github.com/rakyll/hey
[c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144 [c7146bd5]: https://github.com/coreos/etcd/commits/c7146bd5f2c73716091262edc638401bb8229144
[etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks.md [etcd-2.1-benchmark]: etcd-2-1-0-alpha-benchmarks.md
[hack-benchmark]: /hack/benchmark/ [hack-benchmark]: /hack/benchmark/

View File

@ -9,22 +9,22 @@ keyarray=( 64 256 )
for keysize in ${keyarray[@]}; do for keysize in ${keyarray[@]}; do
echo write, 1 client, $keysize key size, to leader echo write, 1 client, $keysize key size, to leader
./boom -m PUT -n 10 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 1 -T application/x-www-form-urlencoded $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -m PUT -n 10 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 1 -T application/x-www-form-urlencoded $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
echo write, 64 client, $keysize key size, to leader echo write, 64 client, $keysize key size, to leader
./boom -m PUT -n 640 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 64 -T application/x-www-form-urlencoded $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -m PUT -n 640 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 64 -T application/x-www-form-urlencoded $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
echo write, 256 client, $keysize key size, to leader echo write, 256 client, $keysize key size, to leader
./boom -m PUT -n 2560 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 256 -T application/x-www-form-urlencoded $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -m PUT -n 2560 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 256 -T application/x-www-form-urlencoded $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
echo write, 64 client, $keysize key size, to all servers echo write, 64 client, $keysize key size, to all servers
for i in ${servers[@]}; do for i in ${servers[@]}; do
./boom -m PUT -n 210 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 21 -T application/x-www-form-urlencoded $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo & ./hey -m PUT -n 210 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 21 -T application/x-www-form-urlencoded $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo &
done done
# wait for all booms to start running # wait for all heys to start running
sleep 3 sleep 3
# wait for all booms to finish # wait for all heys to finish
for pid in $(pgrep 'boom'); do for pid in $(pgrep 'hey'); do
while kill -0 "$pid" 2> /dev/null; do while kill -0 "$pid" 2> /dev/null; do
sleep 3 sleep 3
done done
@ -32,34 +32,34 @@ for keysize in ${keyarray[@]}; do
echo write, 256 client, $keysize key size, to all servers echo write, 256 client, $keysize key size, to all servers
for i in ${servers[@]}; do for i in ${servers[@]}; do
./boom -m PUT -n 850 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 85 -T application/x-www-form-urlencoded $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo & ./hey -m PUT -n 850 -d value=`head -c $keysize < /dev/zero | tr '\0' '\141'` -c 85 -T application/x-www-form-urlencoded $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo &
done done
sleep 3 sleep 3
for pid in $(pgrep 'boom'); do for pid in $(pgrep 'hey'); do
while kill -0 "$pid" 2> /dev/null; do while kill -0 "$pid" 2> /dev/null; do
sleep 3 sleep 3
done done
done done
echo read, 1 client, $keysize key size, to leader echo read, 1 client, $keysize key size, to leader
./boom -n 100 -c 1 $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -n 100 -c 1 $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
echo read, 64 client, $keysize key size, to leader echo read, 64 client, $keysize key size, to leader
./boom -n 6400 -c 64 $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -n 6400 -c 64 $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
echo read, 256 client, $keysize key size, to leader echo read, 256 client, $keysize key size, to leader
./boom -n 25600 -c 256 $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -n 25600 -c 256 $leader/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
echo read, 64 client, $keysize key size, to all servers echo read, 64 client, $keysize key size, to all servers
# bench servers one by one, so it doesn't overload this benchmark machine # bench servers one by one, so it doesn't overload this benchmark machine
# It doesn't impact correctness because read request doesn't involve peer interaction. # It doesn't impact correctness because read request doesn't involve peer interaction.
for i in ${servers[@]}; do for i in ${servers[@]}; do
./boom -n 21000 -c 21 $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -n 21000 -c 21 $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
done done
echo read, 256 client, $keysize key size, to all servers echo read, 256 client, $keysize key size, to all servers
for i in ${servers[@]}; do for i in ${servers[@]}; do
./boom -n 85000 -c 85 $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo ./hey -n 85000 -c 85 $i/v2/keys/foo | grep -e "Requests/sec" -e "Latency" -e "90%" | tr "\n" "\t" | xargs echo
done done
done done