标签 高并发 下的文章

提高WebRequest方法的并发限制

在C#中,WebRequest方法和WebClient方法,在多线程时,对并发请求数量有一个默认限制,这个限制与操作系统相关,在Windows XP/Windows 7等PC系统上默认为2个,而在Windows 2008等服务器系统中,默认为10个,也就是说在出现高并发的环境中,使用WebRequest方法来进行POST或GET请求时,最多只能同时发送10个,剩下的都在排队。出现这个问题的原因是,在HTTP 1.0和HTTP 1.1规定最大连接数就是2,就一直延用到现在。
解决方法:
在程序中设置:

System.Net.ServicePointManager.DefaultConnectionLimit = 512;  //建议最高不要超过1024,具体看使用环境是否需要

或者在配置中设置:

<configuration>
    <system.net>
        <connectionManagement>
            <add address = "http://www.google.com" maxconnection = "512" ></add>
            <add address = "*" maxconnection = "512" ></add>
        </connectionManagement>
    </system.net>
</configuration>

以上。

Windows Server 2008 R2 让IIS支持高并发

IIS的默认设置只能支持很小的访问量,访问量大了(比如每秒几千)就会不响应,可以通过下面的设置使IIS支持高并发访问

1.调整IIS应用程序池队列长度:

IIS管理——>应用程序池——高级设置
队列长度:65535

2.调整IIS的appConcurrentRequestLimit设置
默认值为5000,修改为10万
在cmd中执行下面语句

c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000

之后可以在%systemroot%\System32\inetsrv\config\applicationHost.config中查看到该设置:

<serverRuntime appConcurrentRequestLimit="100000" /> 

3.调整machine.config中的processModel>requestQueueLimit的设置
默认值5000,修改为10万

<configuration>
    <system.web>
        <processModel enable="true" requestQueueLimit="100000"/>

4.修改注册表,调整IIS 7支持的同时TCPIP连接数
默认值5000,修改为10万

reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000 

5.重启服务使生效

net stop http  & net start  http & iisreset

分类

最新文章

最近回复

  • 老徐: 已经加上了,抱歉才看到
  • 青山: 某种原因,暂停友链,抱歉。
  • 搬瓦工: 朋友 交换链接吗
  • 飞刀说: 名称:飞刀说 描述:...
  • 青山: 计划搬迁到腾讯云,正...
  • 河边的飞刀: 网站名称:飞刀说 网...
  • 老徐: 具体要哪个呢?
  • 老徐: 是不是有点老?
  • 青山: 哇,林志炫
  • 老白: 哇,这改的可以,能不...

归档

标签云

C# .net core asp.net 情感 SQL mongodb sql server EasyUI 安全 激活 linux 身份验证 https typecho .net sql注入 kms MVC IIS 高并发 IE 坑爹 服务器 mysql Oracle Combobox Datagrid 口语 数据抓取

其它