研究WCF并发及处理能力的控制
WCF 跟并发 性能相关的几个配置:
1、系统控制的客户端网络连接并发(如果服务端也需要并发请求的话这个参数也是需要的):
<configuration> <system.net> <connectionManagement> <add address="*" maxconnection="1000"/> </connectionManagement> </system.net> <configuration> 这个参数指定一个进程内(或domain) 并发通信连接个数限制,默认2个(就是系统控制了)
2、WCF 网络TCP/IP 监听(bingding)控制的传输协议 这个参数是针对某一(些)端点的绑定的控制
<bindings>
<netTcpBinding>
<bindingname="netcpbindingconfig"
" " />
这2个参数: 第一个就是我们常用的listen的参数,这个意义我们应该很清楚了。
第二个参数 msdn解释是: 客户端上可存入池中以备后续重复使用的最大连接数;服务器上可挂起调度的最大连接数。 On the client, the maximum number of connections to be pooled for subsequent reuse; on the server, the maximum number of connections allowed to be pending dispatch. (看来中文翻译的不太好)。
第一个是tcp协议的控制,第二个是紧跟着协议之后的调度配置(服务端)。
3、针对服务宿主(servicehost)进行的控制
<serviceBehaviors>
<behaviorname="MathServiceBehaviours" >
<serviceThrottling
"
"
"/>
</behavior>
</serviceBehaviors>
maxConcurrentCalls :该值指定整个 ServiceHost中正在处理的最多消息数。
specifies the maximum number of messages actively processing across a ServiceHost.
总结,在服务端控制流量的机制即listenBackLog -> maxConnections -> maxConcurrentCalls(..)
基本上分三个阶段。也是针对不同的可控制对象。
listenBackLog 针对tcp连接的缓冲设置
maxConnections 针对接到连接后,要分配给service消费是 排队(缓冲)的设置;
maxConcurrentCalls(sessions, instances) 是针对service处理压力的控制。
比较完美了!
研究WCF并发及处理能力的控制的更多相关文章
- 30行代码搞定WCF并发性能测试
[以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main() { List< ...
- Java并发编程:线程控制
在上一篇文章中(Java并发编程:线程的基本状态)我们介绍了线程状态的 5 种基本状态以及线程的声明周期.这篇文章将深入讲解Java如何对线程进行状态控制,比如:如何将一个线程从一个状态转到另一个状态 ...
- 关于webapi调用wcf并发假死的分析
原来IDFA(IOS推广获取到用户IOS手机的唯一标识,如果不刷机的话跟安卓的IMEI一样)在公司正常的页面是公用用一个网站和数据库的. 起初怀疑并发数太多,把数据库连接池的数量从一百设置到三百,确实 ...
- Linux驱动设计——并发与竞态控制
并发的概念:多个执行单元同时.并行被执行. 共享资源:硬件资源(IO/外设等),软件上的全局变量.静态变量等. 四种并发控制机制(对共享资源互斥的访问):原子操作.自旋锁(spinlock).信号量( ...
- mvc wcf 并发提示,存储Application,验证是否有用户在操作
System.Web.HttpContext httpContext = System.Web.HttpContext.Current; Hashtable departmentSalary = (H ...
- Python并发编程-事件,红绿灯控制
事件用来控制多个进程同时执行或者阻塞 set和clear 分别用来修改一个事件的状态,True或者False is_set 用来查看一个事件的状态 wait 是依据事件的状态来决定自己是否在wait处 ...
- 基于ScheduledExecutorService的并发定时任务处理能力测试
测试代码 定时器类 package business.util; import java.util.concurrent.Executors; import java.util.concurrent. ...
- Remoting,OData Snippet Compiler等
http://www.sliver.com/dotnet/SnippetCompiler/ [ASP.NET Web API教程]ASP.NET Web API系列教程目录 张逸 .Net Remot ...
- SOA与C#
What is SOA? SOA or Service oriented architecture is an architecture style for building business app ...
随机推荐
- (转载)最黑的黑客米特尼克:多次耍FBI 终被高手擒
(转载)http://bbs.chinabyte.com/thread-816847-1-1.html 凯文·米特尼克 50岁 第一个被FBI通缉的黑客,被称为“头号电脑骇客”,曾入侵北美防空指挥系统 ...
- JavaScript---网络编程(10)--DHTML技术演示(3)-多选框
这节讲述多选框的使用,当然,肯定是结合css和Javascript一起的. checkbox的使用1: 演示代码: <html> <head> <meta http-eq ...
- EF中使用存储过程
1.存储过程使用out参数返回结果 存储过程: create or replace procedure PROC_GETSEQ(tbname varchar,ReturnNum out number) ...
- bzoj 1007 [HNOI2008]水平可见直线(单调栈)
1007: [HNOI2008]水平可见直线 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5120 Solved: 1899[Submit][Sta ...
- Java String的== 与 equals小结
package hashcode; public class LearnString { public static void main(String[] args) { //1.先在栈中创建一个对S ...
- 《A First Course in Abstract Algebra with Applications》-chaper1-数论
由于笔者在别的专栏多次介绍过数论,这里在<抽象代数基础教程>的专栏下,对于chaper1数论这一章节介绍的方式不那么“入门”. 首先来介绍一个代数中常用也是非常重要的证明方法:数学归纳法. ...
- UVA 11802 All Your Bases Belong to Us
题意:这个题题意个人觉得蛮难懂的....意思就是求,把十进制下的n!转化成m进制,末位有且仅有k个连续的0.告诉n和k,求满足题意的m有多少个. 1<= k <= 10^15,n < ...
- 前端学习-使用JS库Leaflet.js生成世界地图并获取标注地址经纬度。
介绍:Leaflet是一个开源的JavaScript库,对移动端友好且对地图有很好的交互性. 大小仅仅只有 33 KB, 同时具有大多数地图所需要的特点. Leaflet设计的非常简单易懂, 同时具有 ...
- PHP如何让apache支持.htaccess 解决Internal Server Error The server …错误
TP框架 打开 www.newtp.com/index.php/Home/Index/abc出现 如下错误: Internal Server Error The server encountered ...
- java数据结构之hash表
转自:http://www.cnblogs.com/dolphin0520/archive/2012/09/28/2700000.html Hash表也称散列表,也有直接译作哈希表,Hash表是一种特 ...