The project feedback reported 503 errors, which need to collect performance data as follows:
1. Windows Performance Monitor, the thread of the application pool process and the processing queue
2, the problem of the current process dump
This is the first queue that is encountered after the request arrives at IIS, and when HTTP. SYS receives the request, it puts the request into the corresponding application pool queue, which reduces the context switch. Note that the application pool queue is for the w3wp process, but it exists in HTTP. SYS's memory area (http. SYS is a device driver running on Kernel-mode). If HTTP. SYS is compared to a NIC, the application pool queue is equivalent to the network card's buffer.
W3wp the request is fetched from the application pool queue, the next step is to remove a CLR thread from the CLR thread pool to process the request and place the request in the CLR thread pool queue If the pool is empty.
Detection of two queues, you can use Windows Performance Monitor
Http Service Request queues\currentqueuesize
Http Service Request queues\arrivalrate
ASP. V4.0.30319\requests Queued
ASP. V4.0.30319\requests Current
Application pool (application pool–> Advanced Settings –> Queue Length )
- General->queue length is set to 65535 (the maximum value supported by the queue length, the default value is 1000)
- Recycling->regular time interval set to 0 (cancels automatic collection of application pool fixed interval, default is 1740)
- Process Model->idle time-out set to 0 (the default value is 20 minutes when the application pool is closed because of an idle timeout)
<!---c:\windows\system32\inetsrv>appcmd set AppPool webform-queuelength : 65535
<!---c:\windows\system32\inetsrv>appcmd set AppPool WebForm- recycling.periodicrestart.time:00:00:00
<!---c:\windows\system32\inetsrv>appcmd set AppPool webform/+ Recycling.periodicRestart.schedule. [value= ' 04:15:00 ']
<!---c:\windows\system32\inetsrv>appcmd set AppPool WebForm- processmodel.idletimeout:00:00:00
<!---c:\windows\system32\inetsrv>appcmd set AppPool WebForm- Recycling.logeventonrecycle: "Time, requests, Schedule, Memory, Isapiunhealthy, OnDemand, Configchange, Privatememory"
IIS (C:\Windows\System32\inetsrv\config\applicationhost.config)
1. Set command:
C:\windows\system32\inetsrv\appcmd.exe Set config/section:serverruntime/appconcurrentrequestlimit:100000
2. Set the result:
<!-- -
<appconcurrentrequestlimit= "100000"/>
. NET Framework & ASP. C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config and webapproot\Web. config)
<!-- -
<enable= "true" maxworkerthreads= " maxiothreads " = "+" minWorkerThreads = " the" miniothreads />
<! -- -
<apprequestqueuelimit= "100000"/>
Network protocol
1. Set the maximum number of connections to 100,000
REG ADD hklm\system\currentcontrolset\services\http\parameters/v maxconnections/t reg_dword/d 100000
REG ADD hkey_local_machine\system\currentcontrolset\services\http\parameters/v maxfieldlength/t reg_dword/d 32768reg Add hkey_local_machine\system\currentcontrolset\services\http\parameters/v maxrequestbytes/t reg_dword/d 32768
2. Modify the TCP MaxUserPort limit (changed from default 5000 to 65534)
REG ADD hklm\system\currentcontrolset\services\tcpip\parameters/v maxuserport/t reg_dword/d 65534
3. net stop HTTP & net start HTTP & IISReset (simply restart the computer directly)
503 Error in stress test---ASP. Support for large concurrency related configurations