• Microsoft IIS Web服务器配置优化


    相信大家所在团队应该或多或少会存在一些使用.NET 4.x的老系统,本文总结了笔者所在团队对.NET 4.x应用的线上IIS服务器进行的一些配置优化,供参考。

    环境版本说明

    适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0

    适用的Windows版本:Windows Server 2008, Windows Server 2008 R2, Windows Server 2012

    集采线上环境对应版本:.NET Framework 4.5(及以上版本) + IIS8.0(及以上版本) + Windows Server 2012 R2(及以上版本)

    Microsoft IIS Web服务器配置优化

    .NET Framework配置优化

    找到C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config 修改
    `<processModel autoConfig="true" />`
    `<processModel enable="true" requestQueueLimit="100000" maxWorkerThreads="100" maxIoThreads="100" minWorkerThreads="50" minIoThreads="50"/>`
    修改后点击保存立即生效,修改此配置可以移除自动配置的请求队列限制,这里放宽到10万请求量并放宽ASP.NET线程数限制。
    Note:关于.NET中的workerThread和ioThread的概念,可以阅读https://blog.csdn.net/wwwpcstarcomcn/article/details/11892711

    IIS的applicationHost配置优化

    打开cmd以管理员身份执行以下命令:
    `C:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000`
    验证:找到C:\Windows\System32\inetsrv\config\applicationHost.config中的以下内容
    `<serverRuntime appConcurrentRequestLimit="100000" />`
     

    操作系统http.sys配置优化

    关于http.sys:它是Windows操作系统的一个核心组件,它运行在操作系统的内核模式下,是一个网络驱动程序,始终处于运行状态,对于用户的HTTP请求能够及时作出反应。 Microsoft IIS Web服务器配置优化

    (1)注册表设置命令1(将最大连接数设置为10万):

    `reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000`
    (2)注册表设置命令2(解决Bad Request - Request Too Long问题):
    reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxFieldLength /t REG_DWORD /d 32768 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters /v MaxRequestBytes /t REG_DWORD /d 32768
    reference:https://www.cnblogs.com/dudu/archive/2012/06/06/bad_request_request_too_long.html

    最后运行以下命令让配置生效(在powershell下通过 | 符号连接多个命令):

    net stop http | net start http | iisreset

    操作系统TCP端口配置优化

    Windows Server默认的TCP MaxUserPort限制为5000,超出TCP连接端口数限制也会引起服务器问题(参考:博客园主站的TCP MaxUserPort引起的服务器问题 )。 修改: 在注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 中添加名为MaxUserPort,类型为DWORD(32-bit),值为65534(10进制)的项目。 Microsoft IIS Web服务器配置优化
    Note:如果你的多个应用站点都是使用同一个端口(比如:80端口),那么放宽此TCP MaxUserPort限制很有必要!

    IIS整体配置优化

    (1)关闭目录浏览 (2)关闭IIS日志 (3)启用IIS应用预加载 目的:解决第一次(或者被应用程序池回收后)访问慢的问题 方法: step1.在服务器管理中安装应用程序初始化功能 Microsoft IIS Web服务器配置优化 Microsoft IIS Web服务器配置优化

    step2.在IIS为指定网站设置预加载
    选择网站-网站设置-高级设置:

    Microsoft IIS Web服务器配置优化

    setp3.在IIS整体设置“配置编辑器”:

    Microsoft IIS Web服务器配置优化

    设置后点击应用按钮生效。

    IIS应用配置优化

    建议设置应用池默认配置以便多个应用站点复用: (1)常规 队列长度:改为65535 启动模式:改为AlwaysRunning

    Microsoft IIS Web服务器配置优化
    Note:队列长度改大这个操作是把双刃剑,取决你的服务器配置 及 应用程序的性能,建议谨慎设置。
    (2)回收 改为特定时间(比如凌晨4点)回收: Microsoft IIS Web服务器配置优化

    (3)进程模型
    关闭时间限制:改为120s
    空闲超时操作:改为Suspend
    启动时间限制:改为120s
    闲置超时:改为0分钟

    Microsoft IIS Web服务器配置优化

    参考资料
    (1)dudu,《支持高并发的IIS Web服务器常用配置 》
    (2)dudu,《让Windows Server + IIS支持10万并发请求 》
    (3)滴答的雨,《站点部署:IIS配置优化指南》


    来源:EdisonTalk ,作者爱迪生
    武穆逸仙 https://www.iwmyx.cn/microsoftiiswebfwqpa.html

  • 相关阅读:
    服务器时间同步
    CentOS7.1下生产环境Keepalived+Nginx配置
    Windows 客户端时间更新脚本NTP
    keepalived的配置详解(非常详细)
    Keepalived stable tarball
    keepalived配置主从备份
    ECharts使用心得总结
    C#项目获取当前时间的农历时间
    如何测试连接MsSQL数据库-------UDL文件
    为什么 管理工具里没有Internet(IIS)管理器选项
  • 原文地址:https://www.cnblogs.com/star8521/p/16074833.html
Copyright © 2020-2023  润新知