github.com/NVIDIA/aistore@v1.3.23-0.20240517131212-7df6609be51d/bench/microbenchmarks/http2/README.md (about) 1 ## http2-bench 2 3 ### Setup 4 1. Install [nghttp2](http://www.nghttp2.org). If you have apt-get installed, `./setup_nghttp.sh` will do all the required setup. 5 2. Start AIStore with any number of proxies and one target. Since nghttp2 does not follow redirects, the benchmarking scripts must point directly at a target. 6 7 ### Usage 8 9 Each benchmark has four arguments: 10 - U: The URL of the target 11 - B: The bucket to get files from 12 - N: The number of files to get 13 - C: The number of concurrent clients to use (unavailable for `server_push_http2_bench`) 14 15 - `./server_push_http2_bench U B N` uses http2 with server push to get N files. 16 - `./no_server_push_http2_bench U B N C` uses http2 to get N files, with C clients. 17 - `./http1_bench U B N C` uses http1.1 to get N files, with C clients. 18 19 #### Examples 20 21 ```console 22 $ ./server_push_http2_bench localhost:8081 local_benchmark_bucket 100 23 $ ./no_server_push_http2_bench localhost:8081 local_benchmark_bucket 100 5 24 $ ./http1_bench localhost:8081 local_benchmark_bucket 100 5 25 ``` 26 27 ### Helpers 28 1. [put_files.go](put_files.go) puts a given number of files with a given size into AIStore. It has five command-line parameters: 29 30 - `-url`: the URL of the AIStore proxy (default: http://localhost:8080) 31 - `-files`: the number of files to put (default: 10) 32 - `-filesize`: the size of files to put, in KB (default: 1) 33 - `-bucket`: the name of the bucket to put them in (default: local_benchmark_bucket) 34 - `-workers`: The number of workers to use to put files (default: 10) 35 36 2. [create_local_bucket](create_local_bucket) creates an ais bucket in AIStore. It takes one parameter: 37 38 - B: The ais bucket to create 39 40 #### Examples 41 42 ```console 43 $ ./create_local_bucket local_benchmark_bucket 44 $ go run put_files.go -files 80 -filesize 50 -bucket local_benchmark_bucket -workers 30 45 ``` 46 47 #### Limitations 48 49 - Read chunk size cannot be modified 50 - Redirects are not followed by nghttp2, so the benchmark must be pointed directly to one target 51 - [server_push_http2_bench](server_push_http2_bench) uses only one concurrent client