Skip to content

joshuarobinson/aws-sdk-cpp-perf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aws-sdk-cpp-perf

Build the SDK and example programs simply by building the included Docker image.

Connect the SDK to a FlashBlade requires setting the following configurations:

Aws::Client::ClientConfiguration::endpointOverride <== FlashBlade Data VIP
Aws::Client::ClientConfiguration::scheme = Aws::Http::Scheme::HTTP;  (OPTIONAL)

To provide S3 access keys, you will also need to create a 'credentials' file as per these instructions.

Build Docker image with the following command:

docker build -t aws-s3-cpp .

Once built, an example invocation is:

docker run -it --name=aws-cpp-readbucket -v ${PWD}/credentials:/home/ir/.aws/credentials --rm aws-s3-cpp ./readbucket_mt 10.0.5.10 bucketname

The multi-threaded version uses one primary thread to LIST all objects in a bucket and add them to a work queue. Then, multiple reader threads pull from that queue and issue the GET operations. The GET results (contents) are discarded so this benchmark only focuses on IO performance.

Use the following command set to look into the running container and count the number of active TCP connections:

PID=$(docker inspect --format '{{.State.Pid}}' aws-cpp-readbucket); sudo nsenter -t $PID -n netstat -antp | grep ESTABLISHED | grep -c ":80"

It is not recommended to use the API based on std::future, GetObjectCallable, as this API does not provide sufficient control or composability for high performance async code.

About

Example code for high-performance C++ S3 reads.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published