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]
