Hello, Whiskers!

Before starting to implement the support with pipes, I run some benchmarks. 
I wanted to be sure I were not wasting time doing something useless.

Well, I was rewarded by numbers much better than I expected. 
Without any further ado here there are the results:

|     Label     | # Samples | Average | Median | 90% Line | 95% Line | 99% Line 
| Min | Max  |
|---------------|-----------|---------|--------|----------|----------|----------|-----|------|
| Python+System |     10000 |     673 |    686 |      766 |      797 |      853 
|  10 | 1180 |
| GoServer      |     10000 |       2 |      2 |        3 |        6 |       15 
|   1 |   78 |


The test is just ONE, with 100 threads running 100 requests. However the 
numbers are pretty eloquent.

Basically, on average a request to the Go server took 2 milliseconds, against 
an average of 673 ms for the docker support. 
Also 90% of requests in Go took less that 3 ms, against 766ms with the system 
call.

No surprise here no one uses CGI anymore since a long time!

---

Also the size of the images is significant:

| sciabarracom/openwhisk-hello   latest              43425039e090        2 
hours ago         16.7MB |
| sciabarracom/openwhisk-exec    latest              ba516ca87a68        2 
hours ago         10.4MB |
| openwhisk/dockerskeleton       latest              25d1878c2f31        4 
months ago        109MB  |
| openwhisk/python3action        latest              e7346758b201        4 
months ago        289MB  |

(the `openwhisk-image` is the image with the proxy and the action, while the 
`openwhisk-exec` contains just the proxy)

---

All the instructions how to run the benchmark by yourself are in the repo here:

https://github.com/sciabarracom/openwhisk-runtime-go

--
  Michele Sciabarra
  [email protected]

Reply via email to