Skip to content

Instantly share code, notes, and snippets.

@kellabyte
Last active August 29, 2015 14:08
Show Gist options
  • Save kellabyte/db163d97cff860ac4485 to your computer and use it in GitHub Desktop.
Save kellabyte/db163d97cff860ac4485 to your computer and use it in GitHub Desktop.

Hardware setup

Client and servers are run on independent machines. Each one has the following.

OS: Ubuntu
Kernel: 3.14.5-031405
RAM: 24GB
CPU: 2 sockets, each socket has a quad core 2.5ghz processor.

Processor topology: https://gist.github.com/kellabyte/8546939

HTTP Response

The HTTP response is identical on both servers so that constructing the response is equal on both.

h2o

curl -v http://server:8080/
* Hostname was NOT found in DNS cache
*   Trying server...
* Connected to server (server) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: server:8080
> Accept: */*
>
< HTTP/1.1 200 OK
< date: Wed, 05 Nov 2014 14:36:11 GMT
* Server h2o/0.1 is not blacklisted
< server: h2o/0.1
< connection: keep-alive
< content-length: 10
< content-type: text/html
< last-modified: Tue, 04 Nov 2014 19:03:14 GMT
< etag: "545922f2-a"
<
It works!
* Connection #0 to host server left intact

Haywire

curl -v http://server:8000/
* Hostname was NOT found in DNS cache
*   Trying server...
* Connected to server (server) port 8000 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: server:8000
> Accept: */*
>
< HTTP/1.1 200 OK
* Server Haywire/master is not blacklisted
< Server: Haywire/master
< Date: Fri, 31 Aug 2011 00:31:53 GMT
< Content-Type: text/html
< Connection: Keep-Alive
< Last-Modified: Tue, 04 Nov 2014 19:03:14 GMT
< etag: 545922f2-a
< Content-Length: 12
<
It works!
* Connection #0 to host server left intact

Results keep-alive, not pipelined

Server threads: 8
Client threads: 8

---------------------------------------------------------------------------------------
Server   | Client conns | pipelined | req/sec |     50% |     75% |     90% |     99% |
---------------------------------------------------------------------------------------
h2o      |           16 |         0 |  48,653 |   215us |   295us |   383us |   527us |
haywire  |           16 |         0 |  39,298 |   162us |   269us |  1.50ms |  2.90ms |
h2o      |           32 |         0 |  79,309 |   260us |   453us |   681us |  2.41ms |
haywire  |           32 |         0 |  55,075 |   201us |  3.19ms |  3.19ms |  3.61ms |
h2o      |           64 |         0 |  82,358 |   880us |  1.19ms |  1.34ms |  6.09ms |
haywire  |           64 |         0 |  78,220 |   324us |   641us |  1.35ms |  9.14ms |
h2o      |          128 |         0 |  77,003 |  1.40ms |  2.28ms |  2.70ms |  3.25ms |
haywire  |          128 |         0 |  75,579 |   990us |  1.25ms |  2.57ms |  3.22ms |
h2o      |          256 |         0 |  77,427 |  3.16ms |  3.47ms |  3.94ms |  6.46ms |
haywire  |          256 |         0 |  75,669 |  3.49ms |  3.69ms |  3.85ms |  4.06ms |

Results keep-alive, pipelined

Server threads: 8
Client threads: 8

-------------------------------------------------------------------------------------------
Server   | Client conns | pipelined | req/sec |      50% |      75% |      90% |      99% |
-------------------------------------------------------------------------------------------
h2o      |           32 |        16 | 164,958 |   3.38ms |   3.65ms |   3.82ms |   5.67ms |
haywire  |           32 |        16 | 157,165 |    727us |  40.67ms |  42.84ms |  42.84ms |
h2o      |           32 |        32 | 173,653 |   1.95ms |   6.96ms |   9.78ms |  40.42ms |
haywire  |           32 |        32 | 198,415 |   2.30ms |  41.67ms |  44.80ms |  45.17ms |
h2o      |           32 |        64 | 181,412 |  15.45ms |  16.88ms |  18.79ms |  19.41ms |
haywire  |           32 |        64 | 340,526 |   3.10ms |  40.91ms |  42.18ms |  46.19ms |
h2o      |           32 |       128 | 260,223 |  22.28ms |  24.53ms |  25.21ms |  27.53ms |
haywire  |           32 |       128 | 410,503 |   5.09ms |  10.92ms |  41.56ms |  41.79ms |
h2o      |           32 |       256 | 251,687 |  28.44ms |  53.99ms |  74.39ms |  75.34ms |
haywire  |           32 |       256 | 443,995 |  10.85ms |  12.72ms |  14.74ms |  17.76ms |
h2o      |           32 |       512 | 329,333 |  43.64ms |  78.43ms | 100.38ms | 165.28ms |
haywire  |           32 |       512 | 376,934 |  26.15ms |  28.94ms |  31.95ms |  41.67ms |
h2o      |           64 |        16 | 155,646 |   6.18ms |   8.65ms |   9.54ms |  10.02ms |
haywire  |           64 |        16 | 196,189 |   1.86ms |  42.56ms |  43.25ms |  43.38ms |
h2o      |           64 |        32 | 284,971 |   8.40ms |  10.07ms |  11.19ms |  16.32ms |
haywire  |           64 |        32 | 276,116 |   2.65ms |  43.16ms |  44.72ms |  45.28ms |
h2o      |           64 |        64 | 243,008 |  18.21ms |  18.88ms |  20.46ms |  22.80ms |
haywire  |           64 |        64 | 466,975 |   4.72ms |   6.40ms |   7.50ms |  41.63ms |
h2o      |           64 |       128 | 258,228 |  32.38ms |  35.69ms |  56.98ms |  62.69ms |
haywire  |           64 |       128 | 467,545 |   9.94ms |  13.13ms |  14.25ms |  16.08ms |
h2o      |           64 |       256 | 282,101 |  72.19ms |  75.03ms |  77.65ms |  78.46ms |
haywire  |           64 |       256 | 439,584 |  26.60ms |  29.73ms |  32.81ms |  35.82ms |
h2o      |           64 |       512 | 340,518 | 115.21ms | 177.32ms | 184.43ms | 226.76ms |
haywire  |           64 |       512 | 332,847 |  40.73ms |  66.06ms |  95.12ms | 274.79ms |
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment