Add sysbench demo case
This commit is contained in:
parent
fc7ba98ded
commit
94ce37bb9f
39
demos/sysbench/README.md
Normal file
39
demos/sysbench/README.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Run Linux sysbench
|
||||||
|
|
||||||
|
In this demo, we will show how to run the Linux sysbench inside Occlum.
|
||||||
|
|
||||||
|
Linux [`sysbench`](https://github.com/akopytov/sysbench) is a scriptable multi-threaded benchmark tool.
|
||||||
|
Occlum could also run the `sysbench` for CPU/Threads/Memory/Mutex/... benchmarks.
|
||||||
|
|
||||||
|
Please note it is configured with "--without-mysql", so no mysql database benchmark can be done.
|
||||||
|
|
||||||
|
## Download and build the Linux sysbench from source code
|
||||||
|
```
|
||||||
|
./dl_and_build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prepare the Occlum instance for sysbench demo
|
||||||
|
```
|
||||||
|
./prepare_sysbench.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Run the sysbench demo
|
||||||
|
|
||||||
|
For example,
|
||||||
|
|
||||||
|
* CPU benchmark
|
||||||
|
```
|
||||||
|
occlum/demos/sysbench/occlum_instance# occlum run /bin/sysbench cpu --cpu-max-prime=2000 --threads=2 run
|
||||||
|
```
|
||||||
|
|
||||||
|
* threads benchmark
|
||||||
|
```
|
||||||
|
# occlum/demos/sysbench/occlum_instance# occlum run /bin/sysbench threads --threads=200 --thread-yields=100 --thread-locks=4 --time=10 run
|
||||||
|
```
|
||||||
|
|
||||||
|
More test commands could refer to
|
||||||
|
```
|
||||||
|
# occlum/demos/sysbench/occlum_instance# occlum run /bin/sysbench --help
|
||||||
|
```
|
||||||
|
|
||||||
|
|
19
demos/sysbench/dl_and_build.sh
Executable file
19
demos/sysbench/dl_and_build.sh
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
||||||
|
|
||||||
|
TAG=1.0.20
|
||||||
|
SYSBENCH_ISNTALL_DIR=${SCRIPT_DIR}/sysbench-install
|
||||||
|
|
||||||
|
rm -rf sysbench-* $TAG.tar.gz*
|
||||||
|
wget https://github.com/akopytov/sysbench/archive/refs/tags/$TAG.tar.gz
|
||||||
|
tar zxvf $TAG.tar.gz
|
||||||
|
|
||||||
|
pushd sysbench-$TAG
|
||||||
|
./autogen.sh
|
||||||
|
./configure --without-mysql --prefix=${SYSBENCH_ISNTALL_DIR}
|
||||||
|
make -j
|
||||||
|
make install
|
||||||
|
popd
|
||||||
|
|
16
demos/sysbench/prepare_sysbench.sh
Executable file
16
demos/sysbench/prepare_sysbench.sh
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
rm -rf occlum_instance
|
||||||
|
occlum new occlum_instance
|
||||||
|
|
||||||
|
cd occlum_instance
|
||||||
|
rm -rf image
|
||||||
|
copy_bom -f ../sysbench.yaml --root image --include-dir /opt/occlum/etc/template
|
||||||
|
|
||||||
|
new_json="$(jq '.resource_limits.user_space_size = "800MB" |
|
||||||
|
.resource_limits.max_num_of_threads = 256 ' Occlum.json)" && \
|
||||||
|
echo "${new_json}" > Occlum.json
|
||||||
|
|
||||||
|
occlum build
|
||||||
|
#occlum run /bin/sysbench threads --threads=200 --thread-yields=100 --thread-locks=4 --time=10 run
|
9
demos/sysbench/sysbench.yaml
Normal file
9
demos/sysbench/sysbench.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
includes:
|
||||||
|
- base.yaml
|
||||||
|
# sysbench
|
||||||
|
targets:
|
||||||
|
# copy sysbench
|
||||||
|
- target: /bin
|
||||||
|
copy:
|
||||||
|
- files:
|
||||||
|
- ../sysbench-install/bin/sysbench
|
Loading…
Reference in New Issue
Block a user