-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve performance of proxy application and TAP handler #2
Comments
See also brave/star-randsrv#58. |
What was the |
Yesterday, I measured requests per second (for a simple "hello world" Web server) for an increasing number of baton threads: All setups can sustain more reqs/sec as the number of sender threads increases—except when we use nitriding's reverse proxy, which sees a reduction in reqs/sec. Some time this week, I'll take a closer look at Go's reverse proxy implementation to see what easy improvements we can make. |
Elaborating on the above: The "Enclave" setup constitutes the approximate upper limit that we can achieve with nitriding. This setup has no nitriding: it consists of a Web server that binds directly to the VSOCK interface, and a custom baton that sends requests directly to the VSOCK interface. At this point, there are two significant bottlenecks:
|
I stumbled upon an issue that describes the problem we're seeing: golang/go#6785. Increasing For posterity, a few other things I've tried:
|
For the record, we just merged PR brave/nitriding#61, which improves the status quo. |
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:
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:
The numbers aren't great. Let's use this issue to do some debugging, identify bottlenecks, and improve the networking code.
The text was updated successfully, but these errors were encountered: