How are connections counted for QS_SrvMinDataRate?
We noticed that the minimum data rate is enforced even though there are not many busy connections (these two log entries were logged practically at the same time):
mod_qos counts the number of open connection records/structures which are created by Apache when opening a new connection (increment) and which is destroyed (decrement) when the connection gets closed and the memory freed.
The number of connections mod_qos "sees" could be logged by adding %{QS_AllConn}e to your transfer/custom log (see http://mod-qos.sourceforge.net/#QS_AllConn).
The value shown by QS_AllConn can be different than the "busy" entry in the status log (higher or lower - as they are not calculated at the very same time and as they use different sources).
Example (status logged by mod_qos 11.64, Apache 2.4.41 MPM event, 30 test clients without keepalive and 10ms "think time" between each request, document size 159 bytes):
I will have to check how it behaves exactly by logging the two values together. There was around a second between the log entries I posted above.
How did you log the QS_AllConn variable in the scoreboard, did you have to modify the source code or is there an option for showing this information? It would be useful to have it there.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Logging QS_AllConn for every request will help you to see the maximum and minimum number of connections your server has (which is better than only one sample per minute as you won't see any peaks).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
How are connections counted for QS_SrvMinDataRate?
We noticed that the minimum data rate is enforced even though there are not many busy connections (these two log entries were logged practically at the same time):
Also, is it normal that there are so many
open
connections?May I ask which version of mod_qos and which Apache MPM you use?
We are using mod_qos 11.63 with event MPM.
mod_qos counts the number of open connection records/structures which are created by Apache when opening a new connection (increment) and which is destroyed (decrement) when the connection gets closed and the memory freed.
The number of connections mod_qos "sees" could be logged by adding %{QS_AllConn}e to your transfer/custom log (see http://mod-qos.sourceforge.net/#QS_AllConn).
The value shown by QS_AllConn can be different than the "busy" entry in the status log (higher or lower - as they are not calculated at the very same time and as they use different sources).
Example (status logged by mod_qos 11.64, Apache 2.4.41 MPM event, 30 test clients without keepalive and 10ms "think time" between each request, document size 159 bytes):
The question is: Does the number of connection shown by QS_AllConn always stays higher than expected?
Last edit: Pascal Buchbinder 2019-12-14
same test with MPM worker more clients (200)
moving the "think time" when sending the request header (results in more threads in the read state):
and with MPM event
the results using Apache 2.4.41 MPM event look pretty good
Last edit: Pascal Buchbinder 2019-12-15
I will have to check how it behaves exactly by logging the two values together. There was around a second between the log entries I posted above.
How did you log the QS_AllConn variable in the scoreboard, did you have to modify the source code or is there an option for showing this information? It would be useful to have it there.
Logging QS_AllConn for every request will help you to see the maximum and minimum number of connections your server has (which is better than only one sample per minute as you won't see any peaks).