研究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 ...
随机推荐
- 【Jade】
Jade 模板引擎使用 Jade - 模板引擎 Jade - Template Engine
- 如何实现Azure虚拟网络中点到站VPN的自动重连
在Windows Azure早期版本中,用户要在某台Azure平台之外的机器与Azure平台内部的机器建立专用连接,可以借助Azure Connect这个功能.当前的Azure版本,已经没有Az ...
- Tomcat7.0配置
Tomcat7.0下载地址:http://tomcat.apache.org/download-70.cgi 选择符合自己操作系统的版本即可(本机win8-64位系统),选择如下: http://11 ...
- FileUtils类介绍
Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了.如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归. 下面是的一个解决方 ...
- UILabel字体加粗等属性和特效
/* Accessing the Text Attributes text property font property textColor property textAlignment pr ...
- hdu1698(线段树的区间替换)
HDU1698 #include <bits/stdc++.h> using namespace std; #define Maxn 1001000*4 struct Node{ int ...
- iOS/mac开发的一些知名个人博客
王巍的博客:王巍目前在日本横滨任职于LINE.工作内容主要进行Unity3D开发,8小时之外经常进行iOS/Mac开发.他的陈列柜中已有多款应用,其中番茄工作法工具非常棒. http://onevca ...
- jqChart动态数据
<link rel="stylesheet" type="text/css" href="../../css/jquery.jqChart.cs ...
- JavaScript-每隔5分钟执行一次ajax请求的实现方法
个页面好像只能有一个 window.onload=function(){},所以要有多个事件,这样写就好了 window.onload=function(){ //假设这里每个五分钟执行一次test函 ...
- [ORACLE]数据库之间复制表
---------------------------------------------------------------------------- -------------ORACLE数据库管 ...