Add cpu usage to regression benchmarks (3rd attempt)

Summary:
Tested by running rocks/tools/debug_regression_test.sh and verifying the local output:
```
 cat local/rocks_regression_tests/OPTIONS-viewstate-66-1262-5000/2017-04-13-11-34-51/SUMMARY.csv
                               commit id,                benchmark,                     user@host,num-dbs,key-range,key-size,value-size,compress-rate,ops-per-thread,num-threads,  cache-size,flushes,compactions,ops-per-s,       p50,       p75,       p99,     p99.9,    p99.99,debug,real-sec,user-sec,sys-sec
d2dce5611a,               readrandom,                root@localhost,     12,     5000,      66,      1262,           50,           312,         16,  1073741824,      4,         16,   138458,      9380,     11530,     55200,  16803200,  32504000,    1,    0,    0,    0
d2dce5611a,         readwhilewriting,                root@localhost,     12,     5000,      66,      1262,           50,           312,         16,  1073741824,      4,         16,   104511,
Closes https://github.com/facebook/rocksdb/pull/2157

Differential Revision: D4909238

Pulled By: maysamyabandeh

fbshipit-source-id: dc7bb8569c3c33b9f7c4ba47a757b24d27bb3b31
This commit is contained in:
Maysam Yabandeh 2017-04-18 17:09:47 -07:00 committed by Facebook Github Bot
parent c49d704656
commit 476e80be80

View file

@ -96,13 +96,15 @@
TITLE_FORMAT="%40s,%25s,%30s,%7s,%9s,%8s,"
TITLE_FORMAT+="%10s,%13s,%14s,%11s,%12s,"
TITLE_FORMAT+="%7s,%11s,"
TITLE_FORMAT+="%9s,%10s,%10s,%10s,%10s,%10s,%5s"
TITLE_FORMAT+="%9s,%10s,%10s,%10s,%10s,%10s,%5s,"
TITLE_FORMAT+="%5s,%5s,%5s" # time
TITLE_FORMAT+="\n"
DATA_FORMAT="%40s,%25s,%30s,%7s,%9s,%8s,"
DATA_FORMAT+="%10s,%13.0f,%14s,%11s,%12s,"
DATA_FORMAT+="%7s,%11s,"
DATA_FORMAT+="%9.0f,%10.0f,%10.0f,%10.0f,%10.0f,%10.0f,%5.0f"
DATA_FORMAT+="%9.0f,%10.0f,%10.0f,%10.0f,%10.0f,%10.0f,%5.0f,"
DATA_FORMAT+="%5.0f,%5.0f,%5.0f" # time
DATA_FORMAT+="\n"
MAIN_PATTERN="$1""[[:blank:]]+:.*[[:blank:]]+([0-9\.]+)[[:blank:]]+ops/sec"
@ -211,7 +213,8 @@ function run_db_bench {
db_bench_error=0
options_file_arg=$(setup_options_file)
echo "$options_file_arg"
db_bench_cmd="$DB_BENCH_DIR/db_bench \
# use `which time` to avoid using bash's internal time command
db_bench_cmd="("'$(which time)'" -p $DB_BENCH_DIR/db_bench \
--benchmarks=$1 --db=$DB_PATH --wal_dir=$WAL_PATH \
--use_existing_db=$USE_EXISTING_DB \
--disable_auto_compactions \
@ -233,11 +236,11 @@ function run_db_bench {
--max_background_flushes=$MAX_BACKGROUND_FLUSHES \
--num_multi_db=$NUM_MULTI_DB \
--max_background_compactions=$MAX_BACKGROUND_COMPACTIONS \
--seed=$SEED 2>&1"
--seed=$SEED) 2>&1"
ps_cmd="ps aux"
if ! [ -z "$REMOTE_USER_AT_HOST" ]; then
echo "Running benchmark remotely on $REMOTE_USER_AT_HOST"
db_bench_cmd="$SSH $REMOTE_USER_AT_HOST $db_bench_cmd"
db_bench_cmd="$SSH $REMOTE_USER_AT_HOST \"$db_bench_cmd\""
ps_cmd="$SSH $REMOTE_USER_AT_HOST $ps_cmd"
fi
@ -306,6 +309,11 @@ function update_report {
perc[3]=${BASH_REMATCH[4]} # p99.9
perc[4]=${BASH_REMATCH[5]} # p99.99
# Parse the output of the time command
real_sec=`tail -3 $2 | grep real | awk '{print $2}'`
user_sec=`tail -3 $2 | grep user | awk '{print $2}'`
sys_sec=`tail -3 $2 | grep sys | awk '{print $2}'`
(printf "$DATA_FORMAT" \
$COMMIT_ID $1 $REMOTE_USER_AT_HOST $NUM_MULTI_DB $NUM_KEYS $KEY_SIZE $VALUE_SIZE \
$(multiply $COMPRESSION_RATIO 100) \
@ -318,6 +326,9 @@ function update_report {
$(multiply ${perc[3]} 1000) \
$(multiply ${perc[4]} 1000) \
$DEBUG \
$real_sec \
$user_sec \
$sys_sec \
>> $SUMMARY_FILE)
exit_on_error $?
}
@ -416,6 +427,7 @@ function setup_test_directory {
"value-size" "compress-rate" "ops-per-thread" "num-threads" "cache-size" \
"flushes" "compactions" \
"ops-per-s" "p50" "p75" "p99" "p99.9" "p99.99" "debug" \
"real-sec" "user-sec" "sys-sec" \
>> $SUMMARY_FILE)
exit_on_error $?
}