让服务器能支持10万并发数秘诀,亲身经历,站在巨人的肩膀上创造

转载 2016年08月29日 11:25:00

由于一个项目的访问量越来越大,从原来的几百个,增加到现在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回车查询设置结果,设置后就会出现下面代码:
<serverRuntime appConcurrentRequestLimit="100000" />
步骤三:
调整machine.config中的processModel>requestQueueLimit的设置
在开始-->运行--》输入:%systemroot%\Microsoft.Net\Framework64\v2.0.50727\CONFIG\machine.config
打开后搜索找到:<processModel autoConfig="true" />,将此替换成<processModel enable="true" requestQueueLimit="100000" />
步骤四:
在开始--》运行--》输入下面三句代码,然后回车,分别输入
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
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
第一句将tcp并发数提高到10万,第二和第三句防止出现解决Bad Request - Request Too Long问题,三句分别输入,分别回车
步骤五:
启动cmd,然后先输入net stop http,等待完成,再输入 net start http,等待完成,再输入 iisreset
完成以上5步后,再重启服务器,即可达到并发数10万,无压力


如果访问量再大的话,就需要使用负载均衡、图片和网站分离、CDN等方法。

大并发大数据量请求的处理方法

大并发大数据量请求一般会分为几种情况: 1.大量的用户同时对系统的不同功能页面进行查找,更新操作 2.大量的用户同时对系统的同一个页面,同一个表的大数据量进行查询操作 3.大量的用户同时对系统的...
  • fhzh520
  • fhzh520
  • 2012年07月18日 09:45
  • 22436

调整IIS 7并发请求数

1. 调整IIS 7应用程序池队列长度   由原来的默认1000改为65535.   IIS Manager > ApplicationPools > Advanced Settings   Q...
  • esinzhong
  • esinzhong
  • 2012年09月18日 13:53
  • 2625

支持高并发的IIS Web服务器常用设置--实现10万个并发请求

支持高并发的IIS Web服务器常用设置 适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 2008, Windows...
  • nic7968
  • nic7968
  • 2014年05月12日 16:58
  • 2138

IIS链接数并发问题

四处收集的资料: 关于同时连接数与在线人数问题的详解 很多用户对连接数的概念认识都很模糊,现介绍如下: 1、浏览者访问站点,必需与站点通过TCP协议,建立连接。这个连接在从服务器上读取信...
  • xue251248603
  • xue251248603
  • 2016年01月26日 17:04
  • 1462

javaWeb如何提高并发数

这是一篇由junly总结的大型java项目开发经验,文章从多个方面讨论了如何提高服务器的并发效率。从常用的使用数据库连接池,减少对象的创建,开发架构,框架选型,到不太常用的数据缓存,数据库分级存储,服...
  • mm7591383
  • mm7591383
  • 2014年04月01日 14:45
  • 1841

javaWeb提高并发数之二十三条

转自:http://blog.sina.com.cn/s/blog_6a14f6ac0100lu1e.html 这是一篇由junly总结的大型java项目开发经验,文章从多个方面讨论了如何提...
  • Manketon
  • Manketon
  • 2015年02月28日 17:08
  • 2508

让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求

让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求
  • dz45693
  • dz45693
  • 2011年01月18日 23:15
  • 2457

支持高并发的IIS Web服务器常用设置

 支持高并发的IIS Web服务器常用设置  适用的IIS版本:IIS 7.0, IIS 7.5, IIS 8.0 适用的Windows版本:Windows Server 200...
  • lasig
  • lasig
  • 2018年01月15日 15:25
  • 12

提高程序并发量的几个建议(不看保证后悔死你)

有朋友和我说,他的程序遇到了瓶颈,程序中带有算法,但是没有事务,仅是查询情况下,应该如何提高并发数量呢?? 首先,我要说的是,先纠正绝大多数人的思维。并发与并行不是一回事!!!并行,指同一时间多个事件...
  • u011550710
  • u011550710
  • 2017年08月04日 16:09
  • 961

提高网站并发性的解决方案

我在Cernet做过拨号接入平台的搭建,而后在Yahoo3721负载搜索引擎前端平台开发,又在猫扑处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对...
  • qq415734794
  • qq415734794
  • 2013年08月17日 14:22
  • 3793
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:让服务器能支持10万并发数秘诀,亲身经历,站在巨人的肩膀上创造
举报原因:
原因补充:

(最多只允许输入30个字)