diff --git a/test/nvme/perf/common.sh b/test/nvme/perf/common.sh index 46d1cc85c..2ce01909e 100755 --- a/test/nvme/perf/common.sh +++ b/test/nvme/perf/common.sh @@ -324,62 +324,33 @@ function bc() { } function get_results() { + local iops bw stdev + local p90_lat p99_lat p99_99_lat + local mean_slat mean_clat local reads_pct local writes_pct - reads_pct=$(bc "$2 / 100") + reads_pct=$(bc "$1 / 100") writes_pct=$(bc "1 - $reads_pct") - case "$1" in - iops) - iops=$(jq -r '.jobs[] | .read.iops + .write.iops' $TMP_RESULT_FILE) - echo $iops - ;; - mean_lat_usec) - mean_lat=$(jq -r ".jobs[] | (.read.lat_ns.mean * $reads_pct + .write.lat_ns.mean * $writes_pct)/1000" $TMP_RESULT_FILE) - echo $mean_lat - ;; - p90_lat_usec) - p90_lat=$(jq -r ".jobs[] | (.read.clat_ns.percentile.\"90.000000\" // 0 * $reads_pct + .write.clat_ns.percentile.\"90.000000\" // 0 * $writes_pct)/1000" $TMP_RESULT_FILE) - echo $p90_lat - ;; - p99_lat_usec) - p99_lat=$(jq -r ".jobs[] | (.read.clat_ns.percentile.\"99.000000\" // 0 * $reads_pct + .write.clat_ns.percentile.\"99.000000\" // 0 * $writes_pct)/1000" $TMP_RESULT_FILE) - echo $p99_lat - ;; - p99_99_lat_usec) - p99_99_lat=$(jq -r ".jobs[] | (.read.clat_ns.percentile.\"99.990000\" // 0 * $reads_pct + .write.clat_ns.percentile.\"99.990000\" // 0 * $writes_pct)/1000" $TMP_RESULT_FILE) - echo $p99_99_lat - ;; - stdev_usec) - stdev=$(jq -r ".jobs[] | (.read.clat_ns.stddev * $reads_pct + .write.clat_ns.stddev * $writes_pct)/1000" $TMP_RESULT_FILE) - echo $stdev - ;; - mean_slat_usec) - mean_slat=$(jq -r ".jobs[] | (.read.slat_ns.mean * $reads_pct + .write.slat_ns.mean * $writes_pct)/1000" $TMP_RESULT_FILE) - echo $mean_slat - ;; - mean_clat_usec) - mean_clat=$(jq -r ".jobs[] | (.read.clat_ns.mean * $reads_pct + .write.clat_ns.mean * $writes_pct)/1000" $TMP_RESULT_FILE) - echo $mean_clat - ;; - bw_Kibs) - bw=$(jq -r ".jobs[] | (.read.bw + .write.bw)" $TMP_RESULT_FILE) - echo $bw - ;; - esac + + iops=$(jq -r '.jobs[] | .read.iops + .write.iops' $TMP_RESULT_FILE) + bw=$(jq -r ".jobs[] | (.read.bw + .write.bw)" $TMP_RESULT_FILE) + mean_lat=$(jq -r ".jobs[] | (.read.lat_ns.mean * $reads_pct + .write.lat_ns.mean * $writes_pct)/1000" $TMP_RESULT_FILE) + p90_lat=$(jq -r ".jobs[] | (.read.clat_ns.percentile.\"90.000000\" // 0 * $reads_pct + .write.clat_ns.percentile.\"90.000000\" // 0 * $writes_pct)/1000" $TMP_RESULT_FILE) + p99_lat=$(jq -r ".jobs[] | (.read.clat_ns.percentile.\"99.000000\" // 0 * $reads_pct + .write.clat_ns.percentile.\"99.000000\" // 0 * $writes_pct)/1000" $TMP_RESULT_FILE) + p99_99_lat=$(jq -r ".jobs[] | (.read.clat_ns.percentile.\"99.990000\" // 0 * $reads_pct + .write.clat_ns.percentile.\"99.990000\" // 0 * $writes_pct)/1000" $TMP_RESULT_FILE) + stdev=$(jq -r ".jobs[] | (.read.clat_ns.stddev * $reads_pct + .write.clat_ns.stddev * $writes_pct)/1000" $TMP_RESULT_FILE) + mean_slat=$(jq -r ".jobs[] | (.read.slat_ns.mean * $reads_pct + .write.slat_ns.mean * $writes_pct)/1000" $TMP_RESULT_FILE) + mean_clat=$(jq -r ".jobs[] | (.read.clat_ns.mean * $reads_pct + .write.clat_ns.mean * $writes_pct)/1000" $TMP_RESULT_FILE) + + echo "$iops $bw $mean_lat $p90_lat $p99_lat $p99_99_lat $stdev $mean_slat $mean_clat" } function get_bdevperf_results() { - case "$1" in - iops) - iops=$(grep Total $TMP_RESULT_FILE | awk -F 'Total' '{print $2}' | awk '{print $2}') - echo $iops - ;; - bw_Kibs) - bw_KBs=$(grep Total $TMP_RESULT_FILE | awk -F 'Total' '{print $2}' | awk '{print $4}') - bc "$bw_KBs * 1024" - ;; - esac + local iops + local bw_MBs + read -r iops bw_MBs <<< $(grep Total $TMP_RESULT_FILE | tr -s " " | awk -F ":| " '{print $5" "$7}') + echo "$iops $(bc "$bw_MBs * 1024")" } function get_nvmeperf_results() { diff --git a/test/nvme/perf/run_perf.sh b/test/nvme/perf/run_perf.sh index 0da4e3073..f5fae0538 100755 --- a/test/nvme/perf/run_perf.sh +++ b/test/nvme/perf/run_perf.sh @@ -272,8 +272,9 @@ mean_clat_disks_usec=0 for ((j = 0; j < REPEAT_NO; j++)); do if [ $PLUGIN = "spdk-perf-bdev" ]; then run_bdevperf > $TMP_RESULT_FILE - iops_disks=$(bc "$iops_disks + $(get_bdevperf_results iops)") - bw=$(bc "$bw + $(get_bdevperf_results bw_Kibs)") + read -r iops bandwidth <<< $(get_bdevperf_results) + iops_disks=$(bc "$iops_disks + $iops") + bw=$(bc "$bw + $bandwidth") cp $TMP_RESULT_FILE $result_dir/perf_results_${MIX}_${PLUGIN}_${NO_CORES}cpus_${DATE}_${k}_disks_${j}.output elif [ $PLUGIN = "spdk-perf-nvme" ]; then run_nvmeperf $DISKNO > $TMP_RESULT_FILE @@ -305,15 +306,18 @@ for ((j = 0; j < REPEAT_NO; j++)); do elif [[ $RW = *"write"* ]]; then rwmixread=0 fi - iops_disks=$(bc "$iops_disks + $(get_results iops $rwmixread)") - mean_lat_disks_usec=$(bc "$mean_lat_disks_usec + $(get_results mean_lat_usec $rwmixread)") - p90_lat_disks_usec=$(bc "$p90_lat_disks_usec + $(get_results p90_lat_usec $rwmixread)") - p99_lat_disks_usec=$(bc "$p99_lat_disks_usec + $(get_results p99_lat_usec $rwmixread)") - p99_99_lat_disks_usec=$(bc "$p99_99_lat_disks_usec + $(get_results p99_99_lat_usec $rwmixread)") - stdev_disks_usec=$(bc "$stdev_disks_usec + $(get_results stdev_usec $rwmixread)") - mean_slat_disks_usec=$(bc "$mean_slat_disks_usec + $(get_results mean_slat_usec $rwmixread)") - mean_clat_disks_usec=$(bc "$mean_clat_disks_usec + $(get_results mean_clat_usec $rwmixread)") - bw=$(bc "$bw + $(get_results bw_Kibs $rwmixread)") + + read -r iops bandwidth mean_lat_usec p90_lat_usec p99_lat_usec p99_99_lat_usec \ + stdev_usec mean_slat_usec mean_clat_usec <<< $(get_results $rwmixread) + iops_disks=$(bc "$iops_disks + $iops") + mean_lat_disks_usec=$(bc "$mean_lat_disks_usec + $mean_lat_usec") + p90_lat_disks_usec=$(bc "$p90_lat_disks_usec + $p90_lat_usec") + p99_lat_disks_usec=$(bc "$p99_lat_disks_usec + $p99_lat_usec") + p99_99_lat_disks_usec=$(bc "$p99_99_lat_disks_usec + $p99_99_lat_usec") + stdev_disks_usec=$(bc "$stdev_disks_usec + $stdev_usec") + mean_slat_disks_usec=$(bc "$mean_slat_disks_usec + $mean_slat_usec") + mean_clat_disks_usec=$(bc "$mean_clat_disks_usec + $mean_clat_usec") + bw=$(bc "$bw + $bandwidth") cp $TMP_RESULT_FILE $result_dir/perf_results_${MIX}_${PLUGIN}_${NO_CORES}cpus_${DATE}_${k}_disks_${j}.json cp $testdir/config.fio $result_dir/config_${MIX}_${PLUGIN}_${NO_CORES}cpus_${DATE}_${k}_disks_${j}.fio