Skip to content

Apache Http Components Benchmark adapted

Jim Northrup edited this page May 14, 2015 · 3 revisions

1xio single-thread performance

2k benchmark + cpu:

image as we look at the cpu graph over 5 minutes we see relaxfactory/1xio running first, consuming 1 core and some background activity in the other 7 hyperthreads. 1xio currently spends no time pooling buffers and consumes the largest heap by swiftly allocating scrap content buffers.

we see jetty8 following with a strangely uniform 50% ratio of SMT core usage. cpu application after the caches warm up. it appears the jetty NIO lineage of code has been deprecated. jetty9 is not using NIO

http core and netty follow respectively with better times, and all test scores corresponding to cpu load of nearly identical core content generators.

the lowest score throughput is 86 megs per second, that approaches saturation of gigabit ethernet.

UPDATED: 64b benchmark + jetty 8-> 9 image

UPDATED: 1xio shards in #75a68f285f9a9aa4583594e9b04ee76112964310 image

LATEST: 1xio pushes comparable traffic with unreported or unused CPU cycles. 1xio selector is clearly the last of the textbook NIO selectors. the same conclusion appears when reviewing the profiler's direct buffer pool -- 0-copy chews through slabs rapidly but the size curtail undue heap thrash. side-note 1xio selector loop consumes cpu almost entirely in the native read and write IO methods, whilst we see a proliferation of java thread syncronization and explosive cpu consumption in parralell with the other solutions. image

image

UPDATED: Jetty9, 64 byte content size, -server flag, -Xmx4g -- except for the server vm. (1.8_u31)
image

UPDATED: allocator pool and intparse checkin: image


RelaxFactory; version: almost.1

Server Software: null Server Hostname: localhost Server Port: 8989 Document Path: http://localhost:8989/rnd?c=2048 Document Length: 2048 bytes

Concurrency Level: 50 Time taken for tests: 117.906000 seconds Complete requests: 5000000 Failed requests: 0 Write errors: 0 Kept alive: 5000000 Total transferred: 10240000000 bytes Requests per second: 42,406.66 [#/sec] (mean) Time per request: 1.179 [ms] (mean) Time per request: 0.024 [ms] (mean, across all concurrent requests) Transfer rate: 86,848.85 [Kbytes/sec] received -1 kb/s sent 86,848.85 kb/s total


Jetty (NIO); version: 8.1.16.v20140903

Server Software: Jetty(8.1.16.v20140903) Server Hostname: localhost Server Port: 8989 Document Path: http://localhost:8989/rnd?c=2048 Document Length: 2048 bytes

Concurrency Level: 50 Time taken for tests: 33.530000 seconds Complete requests: 5000000 Failed requests: 0 Write errors: 0 Kept alive: 5000000 Total transferred: 10240000000 bytes Requests per second: 149,120.19 [#/sec] (mean) Time per request: 0.335 [ms] (mean) Time per request: 0.007 [ms] (mean, across all concurrent requests) Transfer rate: 305,398.15 [Kbytes/sec] received -1 kb/s sent 305,398.15 kb/s total


HttpCore (NIO); version: 4.4.1

Server Software: HttpCore-NIO-Test/1.1 Server Hostname: localhost Server Port: 8989 Document Path: http://localhost:8989/rnd?c=2048 Document Length: 2048 bytes

Concurrency Level: 50 Time taken for tests: 25.498000 seconds Complete requests: 5000000 Failed requests: 0 Write errors: 0 Kept alive: 5000000 Total transferred: 10240000000 bytes Requests per second: 196,093.81 [#/sec] (mean) Time per request: 0.255 [ms] (mean) Time per request: 0.005 [ms] (mean, across all concurrent requests) Transfer rate: 401,600.13 [Kbytes/sec] received -1 kb/s sent 401,600.13 kb/s total


Netty; version: 3.6.2

Server Software: null Server Hostname: localhost Server Port: 8989 Document Path: http://localhost:8989/rnd?c=2048 Document Length: 2048 bytes

Concurrency Level: 50 Time taken for tests: 22.704000 seconds Complete requests: 5000000 Failed requests: 0 Write errors: 0 Kept alive: 5000000 Total transferred: 10240000000 bytes Requests per second: 220,225.51 [#/sec] (mean) Time per request: 0.227 [ms] (mean) Time per request: 0.005 [ms] (mean, across all concurrent requests) Transfer rate: 451,021.85 [Kbytes/sec] received -1 kb/s sent 451,021.85 kb/s total

Process finished with exit code 0

Clone this wiki locally