Commit Graph
31 Commits
Author SHA1 Message Date
Adin ScannellandgVisor bot 2911d8c3b8 Add default_applicable_licenses rules to packages.
PiperOrigin-RevId: 513581243
2023-03-02 10:50:04 -08:00
Zach KoopmansandgVisor bot 0296489633 Ensure only Upload/Download iperf tests run on buildkite.
The addition of the "Parameterized" version of iperf requires a filter
so that only the original tests run. Otherwise, we get test timeouts.

PiperOrigin-RevId: 506938451
2023-02-03 10:36:25 -08:00
Etienne PerotandgVisor bot 0b11e47f3e Make all network benchmarks use container links.
This CL uses container links rather than going over the host network stack.

This avoids relying on that network stack, making the benchmarks more reliable,
and simplifies benchmark setup code.

#codehealth

PiperOrigin-RevId: 486221868
2022-11-04 13:51:45 -07:00
Etienne PerotandgVisor bot 446b816501 Typo fixes.
PiperOrigin-RevId: 486017439
2022-11-03 17:43:00 -07:00
Chen Hui 09dbb4e1c2 benchmarks: add BenchmarkIperfParameterized testcase for iperf benchmark
Signed-off-by: Chen Hui <[email protected]>
2022-09-23 12:32:19 +08:00
Etienne PerotandgVisor bot a0282a593e iperf benchmark: Use container networking links rather than default bridge.
This fixes `iperf` getting stuck on some versions of Docker, and mirrors the
way other multi-container tests do networking.

PiperOrigin-RevId: 468049041
2022-08-16 16:08:56 -07:00
Ayush RanjanandgVisor bot 2026e1f078 Reformat codebase.
PiperOrigin-RevId: 449358041
2022-05-17 17:48:35 -07:00
Adin ScannellandgVisor bot 6a8145514a Remove eternal and enormous tests.
PiperOrigin-RevId: 366573366
2021-04-03 00:18:34 -07:00
Zach KoopmansandgVisor bot 808b599cc5 Make b.N increase by KB not bytes on iperf.
Currently, iperf runs a client that scales by
bytes sent. In practice, this causes b.N to scale
slowly and have several short lived containers.

Instead, scale by KB to more quickly reach required time.

PiperOrigin-RevId: 358244926
2021-02-18 13:01:44 -08:00
Zach KoopmansandgVisor bot a978731a89 Rename params for iperf and tensorflow.
Rename operation params in iperf and tensorflow to
match other similar benchmarks.

PiperOrigin-RevId: 357250304
2021-02-12 12:55:33 -08:00
Zach KoopmansandgVisor bot d7c80588da Fix bug with iperf and don't profile runc.
Fix issue with iperf where b.N wasn't changing across runs.
Also, if the given runtime is runc/not given, don't run a profile against it.

PiperOrigin-RevId: 357231450
2021-02-12 11:28:16 -08:00
Adin ScannellandgVisor bot caec235b70 Simplify profiling and benchmarks.
- Tweak the benchmarks to work with b.N where appropriate. In many cases,
  b.N was simply being ignored. This creates an implicit dependency in the
  user passing a reasonable benchtime (less than or equal to the actual
  runtime of the test, or using the X syntax) otherwise the test runs
  forever.
- In cases where the above is impossible, explicitly set benchtime from
  the test wrapper, to prevent the above behavior (tensorflow).
- Drop the *Reverse variants, which are simply hey benchmarks. We should
  just add a hey benchmark. The platforms benchmarks already include a
  native platform, and thus these benchmarks are incredibly confusing.
  (In other words, BenchmarkNginxReverse has nothing to do with an nginx
  benchmark for runsc.)
- Remove the redunant Harness object, which contains no state, in order
  to slightly simplify the code.
- Make Block and Heap profiling actually work, but setting appropriate
  runtime parameters (and plumbing them through the config).
- Split the profiling into two phases: start and stop, since some will
  need to be started early, and others will need to happen at the end.

PiperOrigin-RevId: 349495377
2020-12-29 18:29:12 -08:00
Zach KoopmansandgVisor bot 50fbae25ed Adjust requests to be constant equal to b.N in network tests.
For "hey", requests >= concurrency. b.N can be set by the
--test.benchtime={b.N}x. The previous setting of b.N * c
can be surprisingly slow for larger c.

Set the requests to max(b.N, c) and log to the user if it is c.

PiperOrigin-RevId: 347053675
2020-12-11 12:37:28 -08:00
Zach KoopmansandShentubot 2e30c8416f Add network benchmarks jobs
Add httpd, nginx, node, and ruby benchmarks to continuous jobs.

PiperOrigin-RevId: 346629115
2020-12-09 15:57:58 -08:00
Zach KoopmansandgVisor bot a9fc861467 Fix tags on benchmark targets.
PiperOrigin-RevId: 346203209
2020-12-07 16:20:12 -08:00
Zach KoopmansandgVisor bot 384dabc619 Add parsers golang benchmarks.
Add parser and formatting for golang benchmarks for docker benchmarks.
Change adds a library for printing and parsing Test parameters and metrics.
Benchmarks use the library to print parameters in the Benchmark title
(e.g. the name field in b.Run()), and to report CustomMetrics. Parser
uses the library to parse printed data from benchmark output and
put it into BigQuery structs.

PiperOrigin-RevId: 336365628
2020-10-09 14:29:21 -07:00
Zach KoopmansandgVisor bot f381f18804 Fix Nginx Startup and Size Benchmarks.
Changes in Nginx Benchmarks in network_tests also affect Startup/Size
Nginx Benchmarks. Make sure the commands line up.

PiperOrigin-RevId: 333543697
2020-09-24 10:32:01 -07:00
Zach KoopmansandgVisor bot 2c04e07fb1 Add Docs to nginx benchmark.
Adds docs to nginx and refactors both Httpd and Nginx benchmarks.

Key changes:
- Add docs and make nginx tests the same as httpd (reverse, all docs, etc.).
- Make requests scale on c * b.N -> a request per thread. This works well
with both --test.benchtime=10m (do a run that lasts at least 10m) and
--test.benchtime=10x (do b.N = 10).
-- Remove a doc from both tests (1000Kb) as 1024Kb exists.

PiperOrigin-RevId: 329751091
2020-09-02 11:22:17 -07:00
Adin ScannellandgVisor bot e6393a0700 Add nogo support to go_binary and go_test targets.
Updates #3374

PiperOrigin-RevId: 328378700
2020-08-25 12:18:25 -07:00
Zach KoopmansandgVisor bot 92caeeacee Add benchmarks to continuous build.
PiperOrigin-RevId: 325892974
2020-08-10 14:52:36 -07:00
Zach KoopmansandgVisor bot 60d6f86e4b Port Ruby benchmark.
PiperOrigin-RevId: 325500772
2020-08-07 13:49:07 -07:00
Zach KoopmansandgVisor bot 4375f48f33 Port Startup and Density Benchmarks.
PiperOrigin-RevId: 325497346
2020-08-07 13:30:39 -07:00
Bhasker HariharanandgVisor bot fbc66b82c9 Fix broken httpd_test.
PiperOrigin-RevId: 324822613
2020-08-04 09:07:09 -07:00
Bhasker HariharanandgVisor bot 74414c90b6 Add support for a reverse HTTPD test.
This change adds a new reverse HTTP test where the HTTPD server runs
in a native container but the client runs inside gVisor. It allows
us to test download performance under varying levels of concurrency.

Also tweaks the concurrent request numbers to test for high levels
of concurrency.

PiperOrigin-RevId: 324651203
2020-08-03 12:00:01 -07:00
Zach KoopmansandgVisor bot 50157a0317 Port nginx and move parsers to own package.
This change:
- Ports the nginx benchmark.
- Switches the Httpd benchmark to use 'hey' as a client.
- Moves all parsers to their own package 'tools'.

Parsers are moved to their own package because 1) parsing output of a command
is often dependent on the format of the command (e.g. 'fio --json'), 2) to
enable easier reuse, and 3) clean up and simplify actual running benchmarks
(no TestParser functions and ugly sample output in benchmark files).

PiperOrigin-RevId: 324144165
2020-07-30 21:17:45 -07:00
Zach KoopmansandgVisor bot 2d86f40ba0 Update call in Node benchmark.
PiperOrigin-RevId: 324028183
2020-07-30 10:19:14 -07:00
Zach KoopmansandgVisor bot 49848fe9c8 Port node benchmark.
PiperOrigin-RevId: 323810235
2020-07-29 10:06:38 -07:00
Zach KoopmansandgVisor bot 504dc8b8bc Add profiling to dockerutil
Adds profiling with `runsc debug` or pprof to dockerutil. All
targets using dockerutil should now be able to use profiling.

In addition, modifies existing benchmarks to use profiling.

PiperOrigin-RevId: 323298634
2020-07-26 22:02:51 -07:00
Zach KoopmansandgVisor bot 4857b447b8 Move main methods for benchmark packages main package file.
PiperOrigin-RevId: 321875119
2020-07-17 16:23:10 -07:00
Zach KoopmansandgVisor bot a8c34b90de Port httpd benchmark
PiperOrigin-RevId: 321478001
2020-07-15 18:21:51 -07:00
Zach KoopmansandgVisor bot 8b7b61538b Initial golang Benchmarks
PiperOrigin-RevId: 321021071
2020-07-13 13:29:30 -07:00