Skip to content

Updated READMEs for system benchmarks #148

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: v2-beta
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ major production workloads listed as follows:
</tr>
</table>

### WDLBench

Also, DCPerf includes micro-benchmarks focusing on hot and common functions/routines in the datacenter.

**Note:** WDLBench has different usages than other benchmarks. To use it, please first go
Expand All @@ -124,6 +126,34 @@ specific [README](packages/wdl_bench/README.md).
</tr>
</table>

### System Bench
DCPerf's system bench focuses on system performance metrics (kernel scheduler and syscalls).


<table>
<tr>
<td>Benchmarks </td>
<td>Programming Languages</td>
<td>LIbraries / SW Stack</td>
<td>Application domain they represent</td>
</tr>
<tr>
<td>
<a href="packages/schbench/README.md">Schbench</a>
</td>
<td>C</td>
<td>Kernel Scheduler Benchmark</td>
<td><a href="https://kernel.googlesource.com/pub/scm/linux/kernel/git/mason/schbench">Linux Kernel Schbench</a></td>
</tr>
<tr>
<td>
<a href="packages/syscall/README.md">Syscall</a>
</td>
<td>C++</td>
<td>clock_gettime, getpid, nanosleep, tcp-related</td>
<td>Common system call benchmarks</td>
</tr>
</table>

## Representativeness

Expand Down
14 changes: 14 additions & 0 deletions packages/schbench/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Schbench

Benchpress includes Linux kernel's schbench tool.

Schbench can be invoked using benchpress cli:

```
./benchpress_cli.py -b system run schbench_default
```

Or, with custom runtime:
```
./benchpress_cli.py -b system run schbench_custom -i '{"runtime":20}'
```
26 changes: 26 additions & 0 deletions packages/syscall/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Syscall Benchmarks

Benchpress supports several syscall benchmarks. By default, it benchmarks all of them.

Single core benchmark:
```
./benchpress_cli.py -b system syscall_single_core
```

Multi core (use all available cores):
```
./benchpress_cli.py -b system syscall_autoscale
```

The syscall benchmark supports the following arguments:

```
./benchpress_cli.py -b system syscall_single_core \
-i '{"workers": 1, "duration_s": 60, "nanosleep_ns": 100, "base_port": 16500, "syscalls": "clock_gettime,getpid,nanosleep,tcp"}'
```
Where:
- `workers`: Number of threads to use. -1 to use all cores
- `duration_s`: Test duration in seconds
- `nanosleep_ns`: Duration of nanosleep in nanoseconds
- `base_port`: Base port for TCP server
- `syscalls`: Comma separated list of syscalls to test. All if empty
Loading