nitriding-daemon icon indicating copy to clipboard operation
nitriding-daemon copied to clipboard

Improve performance of proxy application and TAP handler

Open NullHypothesis opened this issue 2 years ago • 6 comments

I've been working on some tooling that can help us measure nitriding's networking performance. So far, I have a minimal Go Web server that implements a simple "hello world" handler. I tested the Web server in three scenarios:

  1. Docker: In a Docker container (with no nitriding or enclaves involved), which serves as our baseline.
  2. Nitriding-nrp: In an enclave, with the Web service receiving connections directly from clients.
  3. Nitriding: In an enclave, with nitriding acting as a reverse proxy in front of the Web service.

All three scenarios use HTTP only, to eliminate the computational overhead of TLS. I then used baton to measure the requests per second that the Web service can sustain. The results are:

image

The numbers aren't great. Let's use this issue to do some debugging, identify bottlenecks, and improve the networking code.

NullHypothesis avatar Dec 12 '22 20:12 NullHypothesis