Want this feature implemented, too? Please upvote by clicking Thumbs up!
(Posts as a reply won't be published in this feature request thread. Read Me!)
User story
As a PRTG user, I want the PRTG Web Server to reuse existing connections for increased performance.
Details of user story
As I mentioned in a previous KB post, I noticed that when connecting to a PRTG Web Server, the HTTP/1.1 Connection header is set to "closed" on the server by default, and the only way to turn this back on is via a registry edit. This is detrimental to performance, especially in cases where the web server is quite a distance away, as this forces every request to make a new connection, establish an SSL handshake, etc.
For example, when connecting to one of our more distant servers, of the 23 network requests made during a navigation to the home page (/welcome.htm), total time to complete all requests is 13.35 seconds. On average, each of these requests spent 52.69% of its total time either establishing a connection, or waiting for a slot in the browser request pool. When using the API, this disparity can be significantly worse, as calls for small pieces of data will spend upwards of 80% of its time on just the initial connection.
As a result, I'd like the server to respond with the "keep-alive" value for the Connection header instead. To my understanding, this used to be the default functionality in a previous PRTG version. I'm not sure if this was changed to prevent idle connections from hogging resources, but the vast majority of other sites have been able to manage this aspect of HTTP/1.1 for well over a decade. Not using persistent connections is effectively downgrading to the 25-year old HTTP/1.0 and the performance difference is significant with distance to the server.
Acceptance criteria
- By default, the PRTG Web Server should respond to HTTP/1.1 requests with the Connection header set to "keep-alive".
- Implement this in such a way that idle connections do not result in a memory/resource leak. This may be enforced by giving a max time to all connections before dropping.
Status
Open