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 ,作者爱迪生

© 版权声明

☆ END ☆
喜欢就点个赞吧
点赞0 分享
图片正在生成中,请稍后...