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