ASP.NET并发处理
来源:互联网 发布:数据连接池的工作原理 编辑:程序博客网 时间:2024/05/16 12:11
ASP.NET并发处理
讲到并发处理,我们一般会分为两个方面来说:a)服务器级别的并发控制; b)程序级别的并发控制。
服务器级别的并发控制:
Ø 调整服务器应用程序池中的最大连接数。
对于Web 服务器,dudu在优化博客园的服务器的时候写过以下的文章。
dudu 写过让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求http://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html
1. 调整IIS 7应用程序池队列长度
由原来的默认1000改为65535。
IIS Manager > ApplicationPools > Advanced Settings
Queue Length : 65535
2. 调整IIS 7的appConcurrentRequestLimit设置
由原来的默认5000改为100000。
appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
在%systemroot%\System32\inetsrv\config\applicationHost.config中可以查看到该设置。
3. 调整machine.config中的processModel>requestQueueLimit的设置
由原来的默认5000改为100000。
<configuration>
<system.web>
<processModel requestQueueLimit="100000"/>
4. 修改注册表,调整IIS 7支持的同时TCPIP连接数
由原来的默认5000改为100000。
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 1000000
完成上述4个设置,就可以支持10万个同时请求
Ø 对于DB服务器同样也可以调整最大连接数来做优化。
在调整优化好最大连接数之后,就只有软硬件负载均衡了。硬件负载均衡能够直接通过智能交换机实现,处理能力强,而且与系统无关,但是价格贵,配置困难,不能区分实习系统与应用的状态。所以硬件负载均衡适用于一大堆设备,大访问量,简单应用。软件负载均衡是基于系统与应用的,能过更好地根据系统与应用的状况来分配负载。性价比高。PCL负载均衡软件,Linux下的LVS软件。
程序级别的并发控制:
当两个用户同时访问一个页面,一个用户可能更新的事另一个用户已经删除的记录。或者,在一个用户加载页面跟他点击删除按钮之间的时间里,另一个用户修改了这条记录的内容。
有下面三中并发控制策略可供选择:
Ø 什么都不做 –如果并发用户修改的是同一条记录,让最后提交的结果生效(默认的行为)
Ø 开放式并发(Optimistic Concurrency) - 假定并发冲突只是偶尔发生,绝大多数的时候并不会出现; 那么,当发生一个冲突时,仅仅简单的告知用户,他所作的更改不能保存,因为别的用户已经修改了同一条记录
Ø 保守式并发(Pessimistic Concurrency) – 假定并发冲突经常发生,并且用户不能容忍被告知自己的修改不能保存是由于别人的并发行为;那么,当一个用户开始编辑一条记录,锁定该记录,从而防止其他用户编辑或删除该记录,直到他完成并提交自己的更改
讲到并发处理,我们一般会分为两个方面来说:a)服务器级别的并发控制; b)程序级别的并发控制。
服务器级别的并发控制:
Ø 调整服务器应用程序池中的最大连接数。
对于Web 服务器,dudu在优化博客园的服务器的时候写过以下的文章。
dudu 写过让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求http://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html
1. 调整IIS 7应用程序池队列长度
由原来的默认1000改为65535。
IIS Manager > ApplicationPools > Advanced Settings
Queue Length : 65535
2. 调整IIS 7的appConcurrentRequestLimit设置
由原来的默认5000改为100000。
appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
在%systemroot%\System32\inetsrv\config\applicationHost.config中可以查看到该设置。
3. 调整machine.config中的processModel>requestQueueLimit的设置
由原来的默认5000改为100000。
<configuration>
<system.web>
<processModel requestQueueLimit="100000"/>
4. 修改注册表,调整IIS 7支持的同时TCPIP连接数
由原来的默认5000改为100000。
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 1000000
完成上述4个设置,就可以支持10万个同时请求
Ø 对于DB服务器同样也可以调整最大连接数来做优化。
在调整优化好最大连接数之后,就只有软硬件负载均衡了。硬件负载均衡能够直接通过智能交换机实现,处理能力强,而且与系统无关,但是价格贵,配置困难,不能区分实习系统与应用的状态。所以硬件负载均衡适用于一大堆设备,大访问量,简单应用。软件负载均衡是基于系统与应用的,能过更好地根据系统与应用的状况来分配负载。性价比高。PCL负载均衡软件,Linux下的LVS软件。
程序级别的并发控制:
当两个用户同时访问一个页面,一个用户可能更新的事另一个用户已经删除的记录。或者,在一个用户加载页面跟他点击删除按钮之间的时间里,另一个用户修改了这条记录的内容。
有下面三中并发控制策略可供选择:
Ø 什么都不做 –如果并发用户修改的是同一条记录,让最后提交的结果生效(默认的行为)
Ø 开放式并发(Optimistic Concurrency) - 假定并发冲突只是偶尔发生,绝大多数的时候并不会出现; 那么,当发生一个冲突时,仅仅简单的告知用户,他所作的更改不能保存,因为别的用户已经修改了同一条记录
Ø 保守式并发(Pessimistic Concurrency) – 假定并发冲突经常发生,并且用户不能容忍被告知自己的修改不能保存是由于别人的并发行为;那么,当一个用户开始编辑一条记录,锁定该记录,从而防止其他用户编辑或删除该记录,直到他完成并提交自己的更改
0 0
- asp.net 并发处理
- ASP.NET并发处理
- ASP.NET并发处理
- ASP.NET并发处理
- asp.net 并发处理
- ASP.NET并发处理
- ASP.NET并发处理
- asp.net处理高并发
- ASP.NET并发处理(转)
- asp.net MVC EF+并发处理
- ASP.net:DataSet的数据并发异常处理
- Asp.net异步文件读写并发处理总结
- Asp.Net使用开放式并发
- 使用MVC 5的EF6 Code First入门系列:为ASP.NET MVC应用程序处理并发
- .net 如何处理并发操作
- C# .net sqlserver 并发处理
- [ASP.NET]文件处理
- ASP.NET:处理session
- android bitmap内存处理
- switch分支语句注意事项及注册界面的使用思路
- NYOJ 814 又见拦截导弹
- Linux负载均衡软件LVS之一(概念篇)
- java的web.xml中<url-pattern>配置
- ASP.NET并发处理
- 【视频】零基础学Android开发:蓝牙聊天室APP(二)
- java 利用httpclient 3.1 和 httpclient4.1.2发送post请求
- 计算字符串的相似度(编辑距离)
- 【视频】零基础学Android开发:蓝牙聊天室APP(三)
- 自动化办公的定义演变
- Spring中数据源和数据库连接池配置的几种方法
- VS2010编译Boost 1.56
- 申请和释放DMA缓冲区