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