zoukankan      html  css  js  c++  java
  • Windows Server 2008 + IIS 7+ ASP.NET 并发优化

    Windows Server 2008 + IIS 7+ ASP.NET 并发优化

    站点出现这样的错误信息:

    Error Summary:
    
    HTTP Error 503.2 - Service Unavailable
    The serverRuntime@appConcurrentRequestLimit setting is being exceeded. 
    
    Detailed Error Information:
    
    Module IIS Web Core 
    Notification BeginRequest 
    Handler StaticFile 
    
    Error Code 0x00000000
    

    由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从而出现了上面的错误。

    为了避免这样的错误,我们根据相关文档调整了设置,让服务器从设置上支持更多并发请求。

    具体设置如下:

    1. 调整IIS 7应用程序池队列长度 和 最大工作进程数

    由原来的默认1000改为10000。
    
    IIS Manager > 应用程序池 > 右键:高级设置
    
    队列长度 : 10000
    

    iis最大工作进程数:

    最大工作进程数的设置方法:(拷贝)按照每工作进程能承载30个并发的原则来确定应用程序池的最大工作进程数。同时要注意,每个工作进程大约会占用200M左右的系统内存,在设置最大工作进程数的时候,要主要最大工作进程数与200M的乘积不要超过系统最大可用内存数。一般情况下,建议按照每次增加5个工作进程数的方式对最大工作进程数进行调整,调整完后对网站观察一段时间,如依然无法满足要求,再继续增加5个工作进程数。
    
    最大工作进程数: 从1调整到5(1个工作进程大概占用200M系统内存)
    

    2. 调整IIS 7的appConcurrentRequestLimit设置

    由原来的默认5000改为100000。
    
    c:windowssystem32inetsrvappcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
    
    在%systemroot%System32inetsrvconfigapplicationHost.config中可以查看到该设置:
    
    <serverRuntime appConcurrentRequestLimit="100000" /> 
    

    3. 调整machine.config中的processModel>requestQueueLimit的设置

    由原来的默认5000改为100000。

    <configuration>
        <system.web>
            <processModel enable="true" requestQueueLimit="100000"/>
    

    参考文章:http://technet.microsoft.com/en-us/library/dd425294(office.13).aspx

    4. 修改注册表,调整IIS 7支持的同时TCPIP连接数

    由原来的默认5000改为100000。

    reg add HKLMSystemCurrentControlSetServicesHTTPParameters /v MaxConnections /t REG_DWORD /d 100000 
    

    5. 运行命令使用设置生效

    net stop http  & net start  http & iisreset 
    

    完成上述4个设置,就可以支持更多的并发请求。

    参考文章:

    https://blog.csdn.net/qq_34515910/article/details/83107968
    https://www.cnblogs.com/hgamezoom/p/3082538.html
    https://blog.csdn.net/foreveryangting/article/details/80433345
    https://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html
    
  • 相关阅读:
    Zookeeper入门
    Redis五种数据类型
    shardingJDBC分库分表
    RabbitMQ入门
    Spring-Boot
    spring-mvc
    oracle一些对表的操作命令
    对IFeatureClass的选择结果进行再次选择及排序
    关于基础 DBMS 错误 ORA-01654的总结
    Linq 如何实现 in 与 not in
  • 原文地址:https://www.cnblogs.com/rwxwsblog/p/11935158.html
Copyright © 2011-2022 走看看