新足迹

 找回密码
 注册

精华好帖回顾

· 从墨尔本到悉尼一二三 (2005-10-19) 麋鹿 · 扫盲贴 - 考OC和Selective High里面的学校评分到底是怎么回事? (2011-7-13) patrickzhu
· 澳洲版蓝莓杏仁费南雪蛋糕 (2012-10-28) 河水洋洋 · 平成最后的樱花 - 2019日本东北赏樱 (2019-5-21) violinlearner
Advertisement
Advertisement
查看: 4173|回复: 70

有个wcf service throttling issue不懂,持分请教 [复制链接]

发表于 2012-8-24 22:41 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
某服务器里的WCFServiceLibrary里的
App.config里是这样的
    <behavior name="ServiceBehavior">
           <serviceThrottling
             maxConcurrentCalls="3000"
             maxConcurrentSessions="3000"
             maxConcurrentInstances="3000"
           />
    </behavior>

如在几乎同一时刻(误差2个tick之内,200纳秒)用户来的requests数量有在3000以内,没事,都能应付,不会block, 这个懂的。
如超过3000,同一时刻有3100个requests, 那最后100个requests会被queue, 也懂的。
不懂的是,这100个request是怎样被queue的,怎样才能看到怎样被queue的相关信息?
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG
Advertisement
Advertisement

发表于 2012-8-26 01:59 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
手持重分请教

2010年度奖章获得者

发表于 2012-8-26 02:51 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
queue 有2个机制,asp。net本生有max current queue,IIS自己也有max req queue。
。net 4.5 里max current request扩大了非常多好像有几千个了,远比IIS的pool要大所以你不能观看。net,还必须扩大IIS的pool,两者完全独立的。IIS8里的limit应该有提升了。但你始终可以手动去改。

你是看不到的,你能做的只是改setting,request pool是底层里自行 控制的。除非你把que 外接到比如msmq

评分

参与人数 1积分 +3 收起 理由
软件博士 + 3 感谢分享

查看全部评分

足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2012-8-26 03:05 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dalaohu 发表于 2012-8-26 01:51
queue 有2个机制,asp。net本生有max current queue,IIS自己也有max req queue。
。net 4.5 里max current ...

哦,忘了说,这个WCFServiceLibrary里的东东不是host在IIS里,而是host在服务器上的普通的service里
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG

2010年度奖章获得者

发表于 2012-8-26 03:10 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
self hosting, 那就是只决定鱼。net 本生,答案不变。

评分

参与人数 1积分 +2 收起 理由
软件博士 + 2 我知道这是Framework自己的东东,但是有没.

查看全部评分

发表于 2012-8-26 03:11 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dalaohu 发表于 2012-8-26 01:51
queue 有2个机制,asp。net本生有max current queue,IIS自己也有max req queue。
。net 4.5 里max current ...

不需要IIS或ASP.NET的queue, 这个服务器上的WCFServiceLibrary的东东不光由ASP.NET用到
我只是想看WCFServiceLibrary自身App.config里设定的这个maxConcurrentCalls如果满足不了了,启动了WCFServiceLibrary本身引发的queue机制,只是想要看这个queue的相关信息
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG
Advertisement
Advertisement

发表于 2012-8-26 03:13 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dalaohu 发表于 2012-8-26 02:10
self hosting, 那就是只决定鱼。net 本生,答案不变。

WCFServiceLibrary东东是host在服务器Windows Service里
不是self hosting
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG

发表于 2012-8-26 03:15 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有没有什么工具/手段可以查看到这个WCFServiceLibrary本身引发的queue的相关信息的?

发表于 2012-8-26 22:19 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
请教其他专家,最好半小时之内
我还有半小时要睡觉了

发表于 2012-8-26 22:31 |显示全部楼层
此文章由 大飞熊 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大飞熊 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dalaohu 发表于 2012-8-26 01:51
queue 有2个机制,asp。net本生有max current queue,IIS自己也有max req queue。
。net 4.5 里max current ...

你可以问问软件博士是哪个地方读的博士,你可以去申请博士后了。
走别人的路,让别人走投无路

发表于 2012-8-26 23:46 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
大飞熊 发表于 2012-8-26 21:31
你可以问问软件博士是哪个地方读的博士,你可以去申请博士后了。

到我读博士的地方申请博士后?
我的问题还没被解答呢
到底该怎样能进入framework, 看到怎样被queue的相关信息?
(我说的当然不是IIS和ASP.NET的queue)

重分请教
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG
Advertisement
Advertisement

发表于 2012-8-26 23:49 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dalaohu 发表于 2012-8-26 01:51
queue 有2个机制,asp。net本生有max current queue,IIS自己也有max req queue。
。net 4.5 里max current ...

你说的“底层里自行 控制的”
我靠,我就是想看这个
怎么看?
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG

发表于 2012-8-26 23:52 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
软件博士 发表于 2012-8-26 22:49
你说的“底层里自行 控制的”
我靠,我就是想看这个
怎么看?

而且和IIS,ASP.NET无关
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG

2010年度奖章获得者

发表于 2012-8-27 01:54 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
软件博士 发表于 2012-8-26 22:49
你说的“底层里自行 控制的”
我靠,我就是想看这个
怎么看?

这个绝对是framework自行控制的,肯定择优处理的。 我还真从来没有去看的念头。 你google下有没有工具可以看得?
一般还是先到先得的原则吧。

土办法,自己在request start里放个logging试试?log到mil sec应该还是可以看到先后的。但几千个concurrent request你如何模拟?

我决的看这个没有意义,有点像"我想知道这个object是何时精确的被GC回收掉的?",que里的request很快就被下一波处理掉了。


足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2012-8-27 10:53 |显示全部楼层
此文章由 无视 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 无视 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Use your imagination over visualization

发表于 2012-8-27 11:25 |显示全部楼层
此文章由 flyspirit 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 flyspirit 所有!转贴必须注明作者、出处和本声明,并保持内容完整
“怎样被queue的?”这个问题, 要说明一下你要看到多深入? 最深的程度是拿到.net framework源代码并看懂它。 最浅的程度是了解global queue和local queuey以及它们之间的关系。
Advertisement
Advertisement

发表于 2012-8-27 18:54 |显示全部楼层
此文章由 重机枪手 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 重机枪手 所有!转贴必须注明作者、出处和本声明,并保持内容完整
博士能查看framework你让微软咋混,稍微底层点的msdn上文档毛都没有

发表于 2012-8-27 21:46 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
dalaohu 发表于 2012-8-27 00:54
这个绝对是framework自行控制的,肯定择优处理的。 我还真从来没有去看的念头。 你google下有没有工具可 ...

起因是我们服务器有个Service
当大量进来requests之时,就block了,一直wait在那儿,剩余的req都queue起来,也做出不来
每个request都用ChannelFactory开个工厂的instance
每当这个时候多起来就堵了
所以这才想看底层的queue
很多次Fault state掉
就硬不让服务器Fault state
也没用
双休日过去了
专家,博士都搞不定
几天了,
估计损失100多万
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG

发表于 2012-8-27 21:53 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原来神仙一样的IBM, 微软的技术support也搞不定
估计要请魔鬼软件公司不食人间烟火的奇才来看了

2012年度奖章获得者 2011年度奖章获得者

发表于 2012-8-28 15:22 |显示全部楼层
此文章由 交易人生 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 交易人生 所有!转贴必须注明作者、出处和本声明,并保持内容完整
用 svcconfigeditor.exe , enable log,有个详细的纪录记载着每个request.

throttling的设置不是单独的,还要依靠instance 和 concurrency mode 来确定,比如你的 service是 per call 还是 per session的,是 single instance 还是 Multi -instance.

不过看你的麻烦也可能出现在 client端,你每次用 channel factory 建立的 channel ,是不是没有close 掉,这个channel 需要 open 也需要 close ,framework里不管 close.

0  to 1

发表于 2012-8-28 21:41 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
交易人生 发表于 2012-8-28 14:22
用 svcconfigeditor.exe , enable log,有个详细的纪录记载着每个request.

throttling的设置不是单独的, ...

当然有percall, multiple, 当然有concurrentInstances, concurrentSessions, concurrentCalls, ChannelFactory当然Close掉,Close之前当然都被unsafe fixed pin住不被GC干掉,当然在Close后才dispose, 这种最低级的问题诸如此类早就全部扫清了,现在还是不行
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG
Advertisement
Advertisement

发表于 2012-8-30 21:31 |显示全部楼层
此文章由 大飞熊 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大飞熊 所有!转贴必须注明作者、出处和本声明,并保持内容完整
软件博士 发表于 2012-8-28 20:41
当然有percall, multiple, 当然有concurrentInstances, concurrentSessions, concurrentCalls, ChannelFa ...

你这样是没有用的,微软搞WCF的debug一般就两个办法,一个就是上面所说的enable log,第二个就是建立dump file然后打开分析。
不过看你说了半天还一大堆专家博士都搞不定,说的还都是code层面上的东西,难道你没有想到搞个dump 文件看看block在哪里吗?

如果博士搞不来的话,你可以直接打电话找微软,一般公司用微软产品的都是微软的golden partner,一年有几次免费支持的。最后一般都是转到中国去的。
走别人的路,让别人走投无路

发表于 2012-8-30 21:36 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
大飞熊 发表于 2012-8-30 20:31
你这样是没有用的,微软搞WCF的debug一般就两个办法,一个就是上面所说的enable log,第二个就是建立dump ...

你说的log是用比如netstat吗?
比如用 netstat -a -p tcp > i:\netstat.txt
看哪些port established, 哪些port在Time_Wait
?
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG

发表于 2012-8-30 21:48 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
垃圾
要我就不用wcf了,C++,汇编写个用专用port连接的底层服务都比这个强

发表于 2012-8-30 22:37 |显示全部楼层
此文章由 大飞熊 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大飞熊 所有!转贴必须注明作者、出处和本声明,并保持内容完整
软件博士 发表于 2012-8-30 20:36
你说的log是用比如netstat吗?
比如用 netstat -a -p tcp > i:\netstat.txt
看哪些port established, 哪 ...

不是,看来你不太用WCF,自己去google一下交易人生说的东西吧。你说的这么多博士和专家一个双休日也没有搞定这么多人就没有一个熟悉WCF的吗?
走别人的路,让别人走投无路

发表于 2012-8-30 23:49 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
大飞熊 发表于 2012-8-30 21:37
不是,看来你不太用WCF,自己去google一下交易人生说的东西吧。你说的这么多博士和专家一个双休日也没有 ...

是不会用wcf这种上层的东西
只会写C++, C, 汇编,用工具分析2进制
现在也写C#
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG
Advertisement
Advertisement

发表于 2012-8-31 10:47 |显示全部楼层
此文章由 大飞熊 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大飞熊 所有!转贴必须注明作者、出处和本声明,并保持内容完整
软件博士 发表于 2012-8-30 22:49
是不会用wcf这种上层的东西
只会写C++, C, 汇编,用工具分析2进制
现在也写C# ...

说实话别老是说WCF是啥上层的东西,只会用C++,C,汇编啥的。你还只是极限于语言的level,你难道和唐骏是校友?

你有本事也写一个WCF来handle client的requirement。不行就别来强调。汇编,C++,C这种语言也就这么几种语法,只要本科是计算机或者自动化就全部学过了,大部分都写过8086/8088,毕业得早的也用过Z80。单片机也都玩过。

解决不了就解决不了,别老是神神叨叨的用一点高深的词汇来这骗人。你怎么不说你用啥工具来分析2进制,怎么分析啊。
走别人的路,让别人走投无路

发表于 2012-8-31 12:04 |显示全部楼层
此文章由 wil 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 wil 所有!转贴必须注明作者、出处和本声明,并保持内容完整
更正楼上一点,他只是局限与于语言级别中的某一个编程范式分支

发表于 2012-8-31 17:30 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
还是应用的范围,高端技术。.net framework 的源码是开放的,LZ 可以给 wcf review 和指导一下,心得分享一下我们跟着学习。

发表于 2012-8-31 22:33 |显示全部楼层
此文章由 软件博士 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 软件博士 所有!转贴必须注明作者、出处和本声明,并保持内容完整
大飞熊 发表于 2012-8-31 09:47
说实话别老是说WCF是啥上层的东西,只会用C++,C,汇编啥的。你还只是极限于语言的level,你难道和唐骏是 ...

绝对能写比wcf高效的专用服务层,专用physical ports,专门各个层里的数据有专门不同的packets结构,header,body都采用最精简的
最好用c++,汇编,各个层里的协议都一清二楚,一周能做
200刀搞定
RESETA EQU %00010011
CTLREG EQU %00010001
...
LDA A #CTLREG SET 8 BITS AND 2 STOP
STA A ACIA
JMP SIG

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部