Hi,

This is Kishore who is working on async poc using mail 
id(kishore25ku...@gmail.com<mailto:kishore25ku...@gmail.com>). I work at adobe 
and we wanted to implement async support for jclouds library and contribute it 
back.

From the last discussion I was asked to get the performance numbers for the two 
approaches.
Approach 1: Using Http Async Library
Approach 2: Using Outputstream

Test setup:

1.       Both the s3 proxy server and test runner are running in same Docker 
container in azure west-us region.

2.       Azure storage account is also residing in same west-us region.

3.       A bucket is prepopulated with 100,000 files, each file of 1 MB size 
before test start.

4.       The test runner sends unique requests to s3proxy to download files.

Virtual Machine spec: CPU - 8 cores, Memory - 28 GB (Standard_D4 Azure machine)

S3proxy is running with 1 jetty worker thread in all the scenarios. The payload 
size used is 1 MB file. Here are the performance numbers.
Test Runner Threads

Iteration Per thread

Approach

Avg response time (ms)

99%tile time (ms)

Throughput
(Requests / sec)

1

10,000

Async Http Lib

45

87

22

5

10,000

Async Http Lib

107

159

47

10

10,000

Async Http Lib

209

282

48

1

10,000

OutputStream

41

85

24

5

10,000

OutputStream

190

283

26

10

10,000

OutputStream

392

542

25


Summary: Under load Http Async Library approach is providing more throughput 
compared to Output stream approach.


Both the approaches improve performance. The output stream approach can be used 
along with Http Async library approach which is giving around (3-5 ms) 
improvement in latency.

Each approach is independent development. At this point I am keen to take up 
Http Async Library development.


-- Thanks
-- Kishore

Reply via email to