Add iperf2 demo
This commit is contained in:
parent
40ad9d1648
commit
495c6695a9
25
.github/workflows/demo_test.yml
vendored
25
.github/workflows/demo_test.yml
vendored
@ -707,6 +707,31 @@ jobs:
|
|||||||
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/python/flask;
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/python/flask;
|
||||||
curl --cacert flask.crt -X GET https://localhost:4996/customer/1"
|
curl --cacert flask.crt -X GET https://localhost:4996/customer/1"
|
||||||
|
|
||||||
|
iperf2_test:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v1
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- uses: ./.github/workflows/composite_action/sim
|
||||||
|
with:
|
||||||
|
container-name: ${{ github.job }}
|
||||||
|
build-envs: 'OCCLUM_RELEASE_BUILD=1'
|
||||||
|
|
||||||
|
- name: Build iperf2
|
||||||
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/iperf2; SGX_MODE=SIM ./build.sh"
|
||||||
|
|
||||||
|
- name: Start iperf2 server
|
||||||
|
run: docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/iperf2/occlum_server;
|
||||||
|
occlum run /bin/iperf -s -p 6888 &"
|
||||||
|
|
||||||
|
- name: Start iperf2 client
|
||||||
|
run: |
|
||||||
|
sleep ${{ 5 }};
|
||||||
|
docker exec ${{ github.job }} bash -c "cd /root/occlum/demos/iperf2/occlum_client;
|
||||||
|
occlum run /bin/iperf -c 127.0.0.1 -p 6888 -P 16"
|
||||||
|
|
||||||
Linux_LTP_test:
|
Linux_LTP_test:
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
|
28
demos/iperf2/README.md
Normal file
28
demos/iperf2/README.md
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# Run iperf2 on Occlum
|
||||||
|
|
||||||
|
[`Iperf2`](https://sourceforge.net/projects/iperf2/) 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 iperf2 server
|
||||||
|
```
|
||||||
|
cd occlum_server
|
||||||
|
occlum run /bin/iperf -s -p 6888
|
||||||
|
```
|
||||||
|
|
||||||
|
* Start the iperf2 client with 16 threads
|
||||||
|
```
|
||||||
|
cd occlum_client
|
||||||
|
occlum run /bin/iperf -c 127.0.0.1 -p 6888 -P 16
|
||||||
|
```
|
38
demos/iperf2/build.sh
Executable file
38
demos/iperf2/build.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#! /bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
|
||||||
|
export IPERF_INSTALL_DIR=${script_dir}/iperf2-install
|
||||||
|
|
||||||
|
function dl_and_build_iperf()
|
||||||
|
{
|
||||||
|
rm -rf iperf2-*
|
||||||
|
rm -rf ${IPERF_INSTALL_DIR}
|
||||||
|
mkdir -p ${IPERF_INSTALL_DIR}
|
||||||
|
git clone https://git.code.sf.net/p/iperf2/code iperf2-code
|
||||||
|
pushd iperf2-code
|
||||||
|
./configure
|
||||||
|
make install exec_prefix=${IPERF_INSTALL_DIR}
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
function build_occlum_instance()
|
||||||
|
{
|
||||||
|
name=$1
|
||||||
|
rm -rf ${name}
|
||||||
|
occlum new ${name}
|
||||||
|
pushd ${name}
|
||||||
|
copy_bom -f ../iperf2.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
|
9
demos/iperf2/iperf2.yaml
Normal file
9
demos/iperf2/iperf2.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
includes:
|
||||||
|
- base.yaml
|
||||||
|
# bash
|
||||||
|
targets:
|
||||||
|
# copy iperf
|
||||||
|
- target: /bin
|
||||||
|
copy:
|
||||||
|
- files:
|
||||||
|
- ${IPERF_INSTALL_DIR}/bin/iperf
|
Loading…
Reference in New Issue
Block a user