Only ArrivalRate has A value, CurrentQueueSize property always has a zero value , what is their relationship to [Advanced Settinngs->Queue Length]?
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
OS: Windows Server 2016 Standard
IIS: Version 10.0.14393.0
Web Sites: WebIISQueueTest .NetFramework4.5 Asp.net mvc
Question 1: By which performance counter does the site's request queue length be monitored?
Question 2: The request queue length is set but can be exceeded, why not return 503.
Performance counters HTTP Service Request Queues (CurrentQueueSize): The request count in the IIS queue on windows server 2016
The CurrentQueueSize property always has a zero value , why ?
application pool img: https://i.stack.imgur.com/k8tsS.png
Only ArrivalRate has A value, CurrentQueueSize property always has a zero value , what is their relationship to [Advanced Settinngs->Queue Length]?
Ill try to be of some assistance to point out what you (and I) were failing to realize.
The issue is here that the iis setting is for the MAX que size, ie how many can go INTO the que. i had mine set to 10,000 form the default 1,000.
People said it was too big, so i used the profiler to find this actual values, and to my surprise it was always 0... i instantly thought, its not logging correct.
However, as i played with the site and was restarting app pools i would notice a small value would register, during a recent outage the value went up quite a bit.
The reason for this is simple, what tells it to que things? IIS will try to process as many as it can based on a value called, maxConcurrentRequestsPerCPU, before offloading to the que.
<applicationPool
maxConcurrentRequestsPerCPU="5000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="5000" />
Basically, its set to unlimited, and the more CPU/CORES you throw at it the WORSE it is, taking more and more , never needing or hitting the que!
What's worse is that this is now a secret setting, it used to be in the UI from what I gathered..
I hope this helps, if im completely of the mark, please let me know too.
other good docs
https://www.ais.com/comparing-rpc-with-messaging-for-handling-spikes-in-load-part-2/
https://techexpert.tips/iis/iis-limiting-concurrent-connections/
https://serverfault.com/questions/869448/difference-between-limit-number-of-connections-setting-in-iis-and-the-max-pool-s
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/hh831681(v=ws.11)?redirectedfrom=MSDN#Edit_Limits
Based on your question, let me try to explain how IIS manage the connections. Basically the following parameters affect the connections.
The maximum requests that can be handled by your IIS will be determined by IIS maximum number of concurrent worker threads / Maximum number of concurrent connections. If the concurrent requests are more than those values defined, then IIS need to queue the requests. The Queue length defines the number of request that will be queued by IIS and the remaining requests will be sent with 503 status code.
https://learn.microsoft.com/en-us/dotnet/api/microsoft.web.administration.applicationpool.queuelength?view=iis-dotnet
https://learn.microsoft.com/en-us/answers/questions/585468/maximum-connection-limit-in-net-frame-work-47.html
Hope this helps
CurrentQueueSize is 0 indicates no requests are reaching the queue.
Make sure you have installed the monitoring tools correctly.
Hi @aspx ,
Microsoft has a performance counter to monitor IIS and asp.net application performance. You can use it to monitor request queue length by following this article.
HTTP Service Request Queues (CurrentQueueSize): The request count in the IIS queue
If you find this value is always 0, that means there's no request in the queue. Each request can be handled immediately on IIS.
Though you set queue length 15 to limit it, application pool can create multiple work processes to handle requests. And each work process can create multiple threads to handle requests. Only when there's no more free threads and work processes, request will reach the queue to wait.
If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.
Best regards,
Bruce Zhang