Skip to content

benchmarks: add and fix some benchmarks#7989

Merged
copybara-service[bot] merged 7 commits into
google:masterfrom
cedriccchen:benchmarks
Sep 28, 2022
Merged

benchmarks: add and fix some benchmarks#7989
copybara-service[bot] merged 7 commits into
google:masterfrom
cedriccchen:benchmarks

Conversation

@cedriccchen
Copy link
Copy Markdown
Contributor

@cedriccchen cedriccchen commented Sep 16, 2022

benchmarks: add and fix some benchmarks

  1. add syscallbench benchmark for syscall performance
  2. add hackbench benchmark for scheduler performance
  3. add more threads arguments for sysbench benchmark
  4. fix wrong file size for fio read
  5. add more blocksize arguments for fio benchmark
  6. fix invalid option of length for iperf benchmark
  7. add length and parallel options for iperf benchmark

@hbhasker hbhasker requested a review from zkoopmans September 16, 2022 04:14
Copy link
Copy Markdown
Contributor

@zkoopmans zkoopmans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are great and very much appreciated changes...you've made several recently. Thanks a ton!

If you aren't aware, these run continuously on pipelines on the master branch: https://buildkite.com/gvisor/pipeline/builds?branch=master

The results automatically post profiles to the BuildKite run. Use them if you find them useful.

Additionally, we have an internal dashboard where the results are posted and we find regressions pretty well with that dashboard. We haven't released it because 1) some internal process and 2) they run on ptrace and KVM platforms on GCP machines. Ptrace is a stable platform but with bad performance and KVM uses nested virtualization in GCP (we reccomend baremetal KVM for production services).

How useful would this dashboard be to you?

Comment thread test/benchmarks/tools/hackbench.go Outdated
Comment thread test/benchmarks/network/iperf_test.go
Comment thread images/benchmarks/syscallbench/syscallbench.c Outdated
Comment thread images/benchmarks/syscallbench/syscallbench.c Outdated
Comment thread test/benchmarks/tools/syscallbench.go Outdated
@cedriccchen
Copy link
Copy Markdown
Contributor Author

cedriccchen commented Sep 19, 2022

How useful would this dashboard be to you

Awesome! Now the official performance report of gvisor , which is visible from outside, is https://gvisor.dev/docs/architecture_guide/performance/. So I think it will be great to have a dashboard to post the performance metrics of all benchmarks from different versions, which helps the regressions and also helps the comparison of different platforms.

@cedriccchen cedriccchen force-pushed the benchmarks branch 3 times, most recently from f133297 to 0ed1876 Compare September 20, 2022 02:33
Comment thread test/benchmarks/base/syscallbench_test.go Outdated
Comment thread test/benchmarks/base/hackbench_test.go Outdated
Comment thread test/benchmarks/base/hackbench_test.go Outdated
Comment thread test/benchmarks/tools/iperf.go Outdated
@zkoopmans
Copy link
Copy Markdown
Contributor

Awesome! Now the official performance report of gvisor , which is visible from outside, is https://gvisor.dev/docs/architecture_guide/performance/. So I think it will be great to have a dashboard to post the performance metrics of all benchmarks from different versions, which helps the regressions and also helps the comparison of different platforms.

It will take me some time to do this, but I'll see if I can get it done. I think your contributions deserve some investment here.

Thanks again.

Signed-off-by: Chen Hui <cedriccchen@tencent.com>
Signed-off-by: Chen Hui <cedriccchen@tencent.com>
Signed-off-by: Chen Hui <cedriccchen@tencent.com>
According to MakeCmd function of fio, the unit of --size option is MB.

Signed-off-by: Chen Hui <cedriccchen@tencent.com>
Signed-off-by: Chen Hui <cedriccchen@tencent.com>
According to iperf help page:
```
-l, --len       #[kmKM]    length of buffer in bytes to read or write
(Defaults: TCP=128K, v4 UDP=1470, v6 UDP=1450).
```

So "--length 64K" option is invalid for iperf, actually it will be
regard as default option "--len 128K".

Signed-off-by: Chen Hui <cedriccchen@tencent.com>
Signed-off-by: Chen Hui <cedriccchen@tencent.com>
@cedriccchen
Copy link
Copy Markdown
Contributor Author

Hi @zkoopmans , is there any other suggestion?

@zkoopmans
Copy link
Copy Markdown
Contributor

Nope, you're good. I'll make sure this gets merged.

copybara-service Bot pushed a commit that referenced this pull request Nov 11, 2022
Also, revise hackbench to use b.N to scale. There was some discussion
on the [original PR](#7989 (comment)) about
making this fixed. However, after looking again, loops should scale
by b.N. Fixed number of loops can use -test.benchtime=100x or whatever
and comparison can be done using golang's 'ns/op' metric where the op is
number of loops.

PiperOrigin-RevId: 487678691
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants