zoukankan      html  css  js  c++  java
  • 【问题记录】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

  • 相关阅读:
    Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点
    Civil 3D 二次开发 创建Civil 3D 对象—— 00 ——
    Civil 3D 二次开发 创建AutoCAD对象—— 01 —— 创建直线
    Civil 3D 二次开发 新建CLR项目出现错误C2143
    Civil 3D 二次开发 创建AutoCAD对象—— 00 ——
    了解AutoCAD对象层次结构 —— 6 ——块表记录
    datepicker97使用
    使用angular 外接 templateUrl,使用ng-include
    angularJs 遮罩
    网上找的有关css兼容问题
  • 原文地址:https://www.cnblogs.com/cwsheng/p/15781418.html
Copyright © 2011-2022 走看看