logo资料库

IIS网站高性能高并发优化解决方案.docx

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
服务器能支持 10 万并发由于一个项目的访问量越来越大,从原来的几百个,增加 到现在 50 多万个每天,所以阿里的服务器也扛不住了,于是就想办法,查了 N 多 资料,总结了以下方法,才解决这问题,每天一共访问量 50 多万,并不是同时访 问,所以,提高并发数才是关键。 由于网站一再打不开,按照排除原因来看,数据库连接、进程池满了、iis 并发数太 高,我能想到的就只有这三种情况,于是就一个一个排除,当项目网站打不开时, 同服务器其他网站都正常,内存不到 30%,CUP 不到 20%,怎么可能打不开呢, 于是我先重启数据库,发现仍然打不开,然后重启进程池,还是打不开,最后我重 启 iis,这次好了,秒开。看来是 iis 并发数搞得鬼,于是就查微软资料,发现,win2008 默认的并发数是 5000,我想这哪够啊,就想到如下方法,按步骤来: 步骤一: 首先设置进程池 要点:把队列长度调整到 65535,禁止重叠回收,最大故障数改成 65530,这三点 必须要改,不然实现不了 10 万并发效果 步骤二: 调整 IIS 的 appConcurrentRequestLimit 设置 在开始--》运行--》输入:c:\windows\system32\inetsrv\appcmd.exe set config
/section:serverRuntime /appConcurrentRequestLimit:100000--》回车 即 可 , 然 后 可 通 过 在 运 行 中 输 入%systemroot%\System32\inetsrv\config\applicationHost.config 回车查询 设置结果,设置后就会出现下面代码: 步骤三: 调整 machine.config 中的 processModel>requestQueueLimit 的设置 在 开 始 --> 运 行 -- 》 输 入:%systemroot%\Microsoft.Net\Framework64\v2.0.50727\CONFIG\machi ne.config 打 开 后 搜 索 找 到 : , 将 此 替 换 成 步骤四: 在开始--》运行--》输入下面三句代码,然后回车,分别输入 reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parame ters /v MaxFieldLength /t REG_DWORD /d 32768 reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parame ters /v MaxRequestBytes /t REG_DWORD /d 32768
第一句将 tcp 并发数提高到 10 万,第二和第三句防止出现解决 Bad Request - Request Too Long 问题,三句分别输入,分别回车 步骤五: 启动 cmd,然后先输入 net stop http,等待完成,再输入 net start http,等待完 成,再输入 iisreset 完成以上 5 步后,再重启服务器,即可达到并发数 10 万,无压力 如果访问量再大的话,就需要使用负载均衡、图片和网站分离、CDN 等方法。原文 来源:http://club.zoomla.cn/PItem?id=13609 IIS7.5 是微软推出的最新平台 IIS,性能也较以前有很大的提升,但是默认的设置配 不适合很大的请求。但是我们可以根据实际的需要进行 IIS 调整,使其性能更佳, 支持同时 10 万个请求。 以下方案,通过对 IIS7 的配置进行优化,调整 IIS7 应用池的队列长度,请求数限制, TCPIP 连接数等方面,从而使 WEB 服务器的性能得以提升,保证 WEB 访问的访问 流畅。 解决方案: 步骤一:调整 IIS 的应用程序池队列长度。 在【应用程序池】列表中,选择你相应网站所使用的应用程序池,将原来的队列长 度由 1000 改为 65535。当然这里的队列长度你可以根据自己的访问用户*1.5 来设 置,例如:你有 2000 用户,你此处就可以设置为 3000(3000=2000 用户数*1.5), 官方参考
设置如下图: 步骤二:调整 IIS 的 appConcurrentRequestLimit 值 打开 cmd 命令,运行命令:c:\Windows\System32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
步 骤 三 : 修 改 ASP.NET 请 求 队 列 限 制 即 调 整 machine.config 中 的 processModel>RequestQueueLimit 1、单击“开始”,然后单击“运行”。 2 、 在 “ 运 行 ” 对 话 框 中 , 键 入 notepad %systemroot%\Microsoft.Net\Framework64\v4.0.30319\CONFIG\ machine.config,然后单击“确定”。(不同的.NET 版本路径不一样,你可以选择你 自己当前想设置的.NET 版本的 config) 3、找到如下所示的 processModel 元素: 4 、 将 processModel 元 素 替 换 为 以 下 值 :
5、保存并关闭 Machine.config 文件。 步骤四:修改注册表,调整 IIS 支持的并发 TCPIP 连接数 在 cmd 命 令 中 运 行 命 令 : reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000,当然也可以手动去注册表修改
可在注册表中查看 至此,IIS 的调整优化就完成了,可以同时支持 10W 个请求。
参考: MSDN: http://technet.microsoft.com/zh-cn/library/dd425294(office.13). aspx , http://technet.microsoft.com/zh-cn/library/dd441171(v=office.1 3).aspx
分享到:
收藏