Skip to content
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

Make the HTTPServer more configurable #115

Open
pushkarnk opened this issue Nov 26, 2018 · 0 comments
Open

Make the HTTPServer more configurable #115

pushkarnk opened this issue Nov 26, 2018 · 0 comments
Labels
enhancement New feature or request

Comments

@pushkarnk
Copy link
Contributor

Performance tests have shown that features that may be critical for certain workloads may prove to be an overhead for others. We need to make these features optional and provide a mechanism for users to opt in. Some of the configurable features:

  1. Idle socket detection and cleanup
  2. HTTP pipelining
  3. HTTP auto-error handling (e.g WebSocket upgrade workloads)

Secondly, performance tests have also shown that the optimum number of event loop threads at which the performance could peak is benchmark specific. This is because Kitura-NIO consciously choses to move the router handlers invocations to a Dispatch queue (and not on the event loop themselves). We then see two sets of tasks competing for CPU: one set are the event loops that accept incoming connections and deliver responses, the other set are the Dispatch threads that actually run the router handlers. Tests have proven that starving one set against the other slows down performance and it seems that, to maintain a balance, the number of event loop threads will have to be tuned experimentally by the user.

Of course, these allude to an API change.

cc @ianpartridge @djones6

@pushkarnk pushkarnk added the enhancement New feature or request label Nov 26, 2018
@pushkarnk pushkarnk changed the title Make the HTTPServer more configurable [enhancement request]Make the HTTPServer more configurable Nov 26, 2018
@pushkarnk pushkarnk changed the title [enhancement request]Make the HTTPServer more configurable [enhancement]Make the HTTPServer more configurable Nov 26, 2018
@pushkarnk pushkarnk changed the title [enhancement]Make the HTTPServer more configurable Make the HTTPServer more configurable Nov 26, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant