[demos] Move all the benchmark demos together
This commit is contained in:
parent
e54a3d1844
commit
3c11d589f4
16
.github/workflows/demo_test.yml
vendored
16
.github/workflows/demo_test.yml
vendored
@ -653,13 +653,13 @@ jobs:
|
|||||||
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
||||||
|
|
||||||
- name: Run sysbench download and build
|
- name: Run sysbench download and build
|
||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/sysbench && SGX_MODE=SIM ./dl_and_build.sh"
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/sysbench && SGX_MODE=SIM ./dl_and_build.sh"
|
||||||
|
|
||||||
- name: Run prepare sysbench occlum instance
|
- name: Run prepare sysbench occlum instance
|
||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/sysbench && SGX_MODE=SIM ./prepare_sysbench.sh"
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/sysbench && SGX_MODE=SIM ./prepare_sysbench.sh"
|
||||||
|
|
||||||
- name: Run sysbench threads benchmark
|
- name: Run sysbench threads benchmark
|
||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/sysbench/occlum_instance;
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/sysbench/occlum_instance;
|
||||||
occlum run /bin/sysbench threads --threads=200 --thread-yields=100 --thread-locks=4 --time=30 run"
|
occlum run /bin/sysbench threads --threads=200 --thread-yields=100 --thread-locks=4 --time=30 run"
|
||||||
|
|
||||||
Gvisor_syscalls_test:
|
Gvisor_syscalls_test:
|
||||||
@ -735,16 +735,16 @@ jobs:
|
|||||||
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
||||||
|
|
||||||
- name: Build iperf2
|
- name: Build iperf2
|
||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/iperf2; SGX_MODE=SIM ./build.sh"
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/iperf2; SGX_MODE=SIM ./build.sh"
|
||||||
|
|
||||||
- name: Start iperf2 server
|
- name: Start iperf2 server
|
||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/iperf2/occlum_server;
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/iperf2/occlum_server;
|
||||||
occlum run /bin/iperf -s -p 6888 &"
|
occlum run /bin/iperf -s -p 6888 &"
|
||||||
|
|
||||||
- name: Start iperf2 client
|
- name: Start iperf2 client
|
||||||
run: |
|
run: |
|
||||||
sleep ${{ 5 }};
|
sleep ${{ 5 }};
|
||||||
docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/iperf2/occlum_client;
|
docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/iperf2/occlum_client;
|
||||||
occlum run /bin/iperf -c 127.0.0.1 -p 6888 -P 16"
|
occlum run /bin/iperf -c 127.0.0.1 -p 6888 -P 16"
|
||||||
|
|
||||||
Linux_LTP_test:
|
Linux_LTP_test:
|
||||||
@ -782,7 +782,7 @@ jobs:
|
|||||||
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
||||||
|
|
||||||
- name: Build fio dependencies
|
- name: Build fio dependencies
|
||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/fio && ./download_and_build_fio.sh"
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/fio && ./download_and_build_fio.sh"
|
||||||
|
|
||||||
- name: Run fio test
|
- name: Run fio test
|
||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/fio && SGX_MODE=SIM ./run_fio_on_occlum.sh fio-seq-read.fio"
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/benchmarks/fio && SGX_MODE=SIM ./run_fio_on_occlum.sh fio-seq-read.fio"
|
||||||
|
@ -16,7 +16,6 @@ This set of demos shows how real-world apps can be easily run inside SGX enclave
|
|||||||
|
|
||||||
* [bash](bash/): A demo of [Bash](https://www.gnu.org/software/bash/) shell script.
|
* [bash](bash/): A demo of [Bash](https://www.gnu.org/software/bash/) shell script.
|
||||||
* [cluster_serving](cluster_serving/): A demo of [Analytics Zoo Cluster Serving](https://analytics-zoo.github.io/master/#ClusterServingGuide/ProgrammingGuide/) inference solution.
|
* [cluster_serving](cluster_serving/): A demo of [Analytics Zoo Cluster Serving](https://analytics-zoo.github.io/master/#ClusterServingGuide/ProgrammingGuide/) inference solution.
|
||||||
* [fio](fio/): A demo of [Flexible I/O Tester](https://github.com/axboe/fio).
|
|
||||||
* [fish](fish/): A demo of [FISH](https://fishshell.com) shell script.
|
* [fish](fish/): A demo of [FISH](https://fishshell.com) shell script.
|
||||||
* [flink](flink/): A demo of [Apache Flink](https://flink.apache.org).
|
* [flink](flink/): A demo of [Apache Flink](https://flink.apache.org).
|
||||||
* [font](font/font_support_for_java): A demo of supporting font with Java.
|
* [font](font/font_support_for_java): A demo of supporting font with Java.
|
||||||
@ -33,6 +32,16 @@ This set of demos shows how real-world apps can be easily run inside SGX enclave
|
|||||||
* [vault](golang/vault/): A demo of [HashiCorp Vault](https://github.com/hashicorp/vault).
|
* [vault](golang/vault/): A demo of [HashiCorp Vault](https://github.com/hashicorp/vault).
|
||||||
* [xgboost](xgboost/): A demo of [XGBoost](https://xgboost.readthedocs.io/en/latest).
|
* [xgboost](xgboost/): A demo of [XGBoost](https://xgboost.readthedocs.io/en/latest).
|
||||||
|
|
||||||
|
## Benchmark demos
|
||||||
|
|
||||||
|
This set of demos shows how commonly used benchmarking tools can be run inside SGX enclaves with Occlum.
|
||||||
|
|
||||||
|
* [fio](benchmarks/fio/): A demo of [Flexible I/O Tester](https://github.com/axboe/fio).
|
||||||
|
* [iperf2](benchmarks/iperf2/): A demo of [Iperf2](https://sourceforge.net/projects/iperf2/), a tool for measuring Internet bandwidth performance.
|
||||||
|
* [iperf3](benchmarks/iperf3/): A demo of [Iperf3](https://github.com/esnet/iperf), a tool for measuring Internet bandwidth performance.
|
||||||
|
* [sysbench](benchmarks/sysbench/): A demo of [Sysbench](https://github.com/akopytov/sysbench), a scriptable multi-threaded benchmark tool for Linux.
|
||||||
|
|
||||||
|
|
||||||
## Programming language demos
|
## Programming language demos
|
||||||
|
|
||||||
This set of demos shows how apps written with popular programming languages can be run inside SGX enclaves with Occlum.
|
This set of demos shows how apps written with popular programming languages can be run inside SGX enclaves with Occlum.
|
||||||
|
9
demos/benchmarks/README.md
Normal file
9
demos/benchmarks/README.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# Benchmark Demos
|
||||||
|
|
||||||
|
This set of demos shows how commonly used benchmarking tools can be run inside SGX enclaves with Occlum.
|
||||||
|
|
||||||
|
* [fio](fio/): A demo of [Flexible I/O Tester](https://github.com/axboe/fio).
|
||||||
|
* [iperf2](iperf2/): A demo of [Iperf2](https://sourceforge.net/projects/iperf2/), a tool for measuring Internet bandwidth performance.
|
||||||
|
* [iperf3](iperf3/): A demo of [Iperf3](https://github.com/esnet/iperf), a tool for measuring Internet bandwidth performance.
|
||||||
|
* [sysbench](sysbench/): A demo of [Sysbench](https://github.com/akopytov/sysbench), a scriptable multi-threaded benchmark tool for Linux.
|
||||||
|
|
@ -35,4 +35,4 @@ function build_occlum_instance()
|
|||||||
|
|
||||||
dl_and_build_iperf
|
dl_and_build_iperf
|
||||||
build_occlum_instance occlum_server
|
build_occlum_instance occlum_server
|
||||||
build_occlum_instance occlum_client
|
build_occlum_instance occlum_client
|
@ -6,4 +6,4 @@ targets:
|
|||||||
- target: /bin
|
- target: /bin
|
||||||
copy:
|
copy:
|
||||||
- files:
|
- files:
|
||||||
- ${IPERF_INSTALL_DIR}/bin/iperf
|
- ${IPERF_INSTALL_DIR}/bin/iperf
|
28
demos/benchmarks/iperf3/README.md
Normal file
28
demos/benchmarks/iperf3/README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Run iperf3 on Occlum
|
||||||
|
|
||||||
|
[`Iperf3`](https://github.com/esnet/iperf) is a popular tool for measuring Internet bandwidth performance.
|
||||||
|
|
||||||
|
### Build
|
||||||
|
```
|
||||||
|
./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
If everything goes well, it generates two occlum instances.
|
||||||
|
```
|
||||||
|
occlum_server
|
||||||
|
occlum_client
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run the test
|
||||||
|
|
||||||
|
* Start the iperf3 server for on one time benchmark
|
||||||
|
```
|
||||||
|
cd occlum_server
|
||||||
|
occlum run /bin/iperf3 -s -p 6777 -1
|
||||||
|
```
|
||||||
|
|
||||||
|
* Start the iperf3 client with 16 streams
|
||||||
|
```
|
||||||
|
cd occlum_client
|
||||||
|
occlum run /bin/iperf3 -c 127.0.0.1 -p 6777 -P 16
|
||||||
|
```
|
39
demos/benchmarks/iperf3/build.sh
Executable file
39
demos/benchmarks/iperf3/build.sh
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
|
||||||
|
export IPERF3_INSTALL_DIR=${script_dir}/iperf-install
|
||||||
|
|
||||||
|
function dl_and_build_iperf()
|
||||||
|
{
|
||||||
|
rm -rf iperf-*
|
||||||
|
rm -rf 3.11*
|
||||||
|
mkdir -p ${IPERF3_INSTALL_DIR}
|
||||||
|
wget https://github.com/esnet/iperf/archive/refs/tags/3.11.tar.gz
|
||||||
|
tar zxf 3.11.tar.gz
|
||||||
|
pushd iperf-3.11
|
||||||
|
./configure
|
||||||
|
make install exec_prefix=${IPERF3_INSTALL_DIR}
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
function build_occlum_instance()
|
||||||
|
{
|
||||||
|
name=$1
|
||||||
|
rm -rf ${name}
|
||||||
|
occlum new ${name}
|
||||||
|
pushd ${name}
|
||||||
|
copy_bom -f ../iperf3.yaml --root image --include-dir /opt/occlum/etc/template
|
||||||
|
|
||||||
|
new_json="$(jq '.resource_limits.user_space_size = "1000MB" |
|
||||||
|
.resource_limits.max_num_of_threads = 64 ' Occlum.json)" && \
|
||||||
|
echo "${new_json}" > Occlum.json
|
||||||
|
|
||||||
|
occlum build
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
dl_and_build_iperf
|
||||||
|
build_occlum_instance occlum_server
|
||||||
|
build_occlum_instance occlum_client
|
13
demos/benchmarks/iperf3/iperf3.yaml
Normal file
13
demos/benchmarks/iperf3/iperf3.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
includes:
|
||||||
|
- base.yaml
|
||||||
|
# bash
|
||||||
|
targets:
|
||||||
|
# copy iperf
|
||||||
|
- target: /bin
|
||||||
|
copy:
|
||||||
|
- files:
|
||||||
|
- ${IPERF3_INSTALL_DIR}/bin/iperf3
|
||||||
|
- target: /opt/occlum/glibc/lib
|
||||||
|
copy:
|
||||||
|
- files:
|
||||||
|
- ${IPERF3_INSTALL_DIR}/lib/libiperf.so.0
|
@ -10,7 +10,7 @@ copy_bom -f ../sysbench.yaml --root image --include-dir /opt/occlum/etc/template
|
|||||||
|
|
||||||
new_json="$(jq '.resource_limits.user_space_size = "800MB" |
|
new_json="$(jq '.resource_limits.user_space_size = "800MB" |
|
||||||
.resource_limits.max_num_of_threads = 256 ' Occlum.json)" && \
|
.resource_limits.max_num_of_threads = 256 ' Occlum.json)" && \
|
||||||
echo "${new_json}" > Occlum.json
|
echo "${new_json}" > Occlum.json
|
||||||
|
|
||||||
occlum build
|
occlum build
|
||||||
#occlum run /bin/sysbench threads --threads=200 --thread-yields=100 --thread-locks=4 --time=10 run
|
#occlum run /bin/sysbench threads --threads=200 --thread-yields=100 --thread-locks=4 --time=10 run
|
Loading…
Reference in New Issue
Block a user