• 【问题记录】IIS配置项


    起因:

     由于之前项目中出现过内存占用较高情况,为了保障业务不因程序问题导致停止;需要实现对进程资源占用限制。

     需要利用IIS相关功能实现,所以对IIS相关配置多一些了解。

     主要对以下高级设置重点项了解:包含:

      网站高级配置:

      

      进程池高级设置:

      

    一、IIS重点配置项目:

    • 连接数

       连接数概念:
       [1] 浏览者访问站点,必需与站点通过TCP协议,建立连接。这个连接在从服务器上读取信息时存在,读取结束时,一般即自动关闭。所以,当一个页面已经完全地显示在客户端的显示器上时,使用的连接也许已经关闭了。
       [2] 每个浏览者,访问某站点时,可能会占用1-3多个连接,这是由计算机自动处理的,这样做的目的是为了加快速度。所以,对于连接数为30的基础型主机而言,有时只能十几个人访问。
       [3] 虽然服务器中可以规定每个站点的最大连接数,但同时也存在服务器的总计最大连接数。所以,即使规定用户站点的最大连接数为不限,当服务器达到了最大连接数时,仍不能访问站点。而服务器的最大连接数一般在1000—2000。

       点击“网站”->“功能视图”->“限制...“->“编辑网站限制”

       

       限制连接数(N)即为虚拟主机供应公开的IIS连接数标准;该梳理受服务器连接数量影响

    • 最大并发连接数

       最大并发连接数:允许并发连接的最大数目,可以看到当前默认值为:【4294967295】

      

      那么IIS就能支持这么大的并发?——当然不是。

      例如:当1000个并发请求,如果最大并发连接数设置为500,那么情况为:500个立即返回503,剩下500个请求慢慢返回。

      最大并发连接数还受:队列数量、最大并发工作线程数影响 

    • 最大并发工作线程

       IIS同时处理的工作线程数量,该数量在IIS中未找到对应的设置界面。win7系统的IIS的值是10,VS2012自带的IIS Express的值是80

      例如:当前IIS最大并发工作线程为10,当1000个并发请求时;10个请求就会立即被处理,其他的990请求则进入队列中排队。

    • 队列长度

       当前请求允许最大排队数量,默认值:1000

      

      最后总结下:最大并发连接数、最大并发工作线程、队列长度之间的关系:

       最大并发连接数= 最大并发工作线程 + 队列长度

      例如:当最大并发工作线程为:20、队列长度为500时,当为并发请求1000时:其中480个请求会立即返回503错误,500个加入队列等待、20个立即进行处理

    • 最大工作进程数

      可以用来处理应用程序池的最大工作进程数量:例如设置5后会启动5个进程处理请求:

      

     

       最大工作进程数的设置方法:按照每工作进程能承载30个并发的原则来确定应用程序池的最大工作进程数。同时要注意,每个工作进程大约会占用20M(如上图,可能系统不同存在差异)左右的系统内存,在设置最大工作进程数的时候,要主要最大工作进程数与20M的乘积不要超过系统最大可用内存数。

      大多数应用系统都存在工作时间使用量高、非工作时间使用量低的情况,针对这种现象,在系统非忙时应合理的释放操作系统资源,因此,应合理设置应用程序池的【限制超时】和【回收时间间隔】属性

    • 回收设置:

      用于设置进程池回收条件主要包含:固定时间回收、请求数量达到回收、虚拟限制(虚拟、专用)达到回收、指定时间回收等。

      本次主要设置专用内存限制:

         

    二、高并发请求配置优化:

     例如IIS支持10w并发请求配置:

     1、调整IIS的应用程序池队列长度:

      选择你相应网站所使用的应用程序池,将原来的队列长度由1000改为65535。当然这里的队列长度你可以根据自己的访问用户*1.5来设置,例如:你有2000用户,你此处就可以设置为3000(3000=2000用户数*1.5)

      

     2、调整IIS的appConcurrentRequestLimit值

      打开命令行:

    c:\Windows\System32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000

      查看配置文件中是否添加:C:\Windows\System32\inetsrv\config\applicationHost.config

      

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

      打开该文件: %systemroot%\Microsoft.Net\Framework64\v4.0.30319\CONFIG\machine.config

      找到如下所示的 processModel 元素:<processModel autoConfig="true" />

      将 processModel 元素替换为以下值:<processModel enable="true" requestQueueLimit="100000" />

     4、修改系统注册表:最多同时连接10w个TCP连接:

    reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000  

     5、应用修改配置:

    net stop http  & net start  http & iisreset 

    三、总结:

     1、IIS最大并发数限制:最大并发连接数= 最大并发工作线程 + 队列长度

     2、最大进程数:需要根据系统资源情况,合理设置数量;并应合理设置应用程序池的【限制超时】和【回收时间间隔】属性进行资源释放

     3、回收设置合理的使用能保证服务不停机,影响业务系统。

    参考
       IIS

  • 相关阅读:
    石头汤
    win8激活 DNS名称不存在
    IE系列hack
    CSS缩写
    MSDN资源
    项目管理之软件文档知多少
    jqModal
    Microsoft Security Essentials 不升级方法
    XP没有声音服务解决方案
    office2003安全模式启动,默认模板问题/打开word就显示“无法装载这个对象”
  • 原文地址:https://www.cnblogs.com/cwsheng/p/15781418.html
Copyright © 2020-2023  润新知