新足迹

 找回密码
 注册

精华好帖回顾

· **酱酱相传***传统的韩式烤肉酱***不传统的甜酸烤肉沙拉 (2011-6-2) Q_ma · 女儿获得Google Code In 2019 Winner - 开贴介绍这个比赛 (2020-2-14) hwll
· city的日与夜 黑与白 (2012-7-12) JerryWu · == 煮饭这件小事 (二) -- 豌豆饭 == (2018-1-8) 胡须康
Advertisement
Advertisement
查看: 3025|回复: 38

求教一个performance的问题 [复制链接]

发表于 2013-3-19 15:29 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 北风 于 2013-3-19 14:49 编辑

一个windows application,client+server+database
在同一个网络里,有些client的速度很快,有些client的速度很慢
用dot trace发现速度的主要区别在这里System.Net.UnsafeNclNativeMethods.OSSOCK.recv
快的client call一次这个只要100ms,慢的client call一次这个要5000ms
system.dll的版本都是2.0

请问有没有tuning的方向?
If you let people believe that you are weak, sooner or later you’re going to have to kill them.
Advertisement
Advertisement

发表于 2013-3-19 16:17 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2013-3-19 16:23 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
各路大神今天放假?

发表于 2013-3-19 16:24 |显示全部楼层
此文章由 eltonfive 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eltonfive 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有Database,先让DBA看看DB performance 有啥问题没有。

发表于 2013-3-19 16:26 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
eltonfive 发表于 2013-3-19 15:24
有Database,先让DBA看看DB performance 有啥问题没有。


谢谢建议,我就是dba,database的performance没有问题
If you let people believe that you are weak, sooner or later you’re going to have to kill them.

发表于 2013-3-19 16:29 |显示全部楼层
此文章由 大飞熊 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大飞熊 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你说太笼统了,具体怎么回事,是通过什么连接的。什么协议的连接的都没有说,就看一个dot trace不太可能看得出来的。
Advertisement
Advertisement

发表于 2013-3-19 16:30 |显示全部楼层
此文章由 eltonfive 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eltonfive 所有!转贴必须注明作者、出处和本声明,并保持内容完整
APP Server 内存/CPU 使用状况怎样,client到App Server  网络路径有啥差别

发表于 2013-3-19 16:32 |显示全部楼层
此文章由 eltonfive 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eltonfive 所有!转贴必须注明作者、出处和本声明,并保持内容完整
App server/Db server 是Virtual还是Physical

发表于 2013-3-19 16:32 |显示全部楼层
此文章由 AmandaX 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 AmandaX 所有!转贴必须注明作者、出处和本声明,并保持内容完整
可怜孩子 ms你可以推给network team....proxy?.....

退役斑竹

发表于 2013-3-19 16:35 |显示全部楼层
此文章由 大饼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 大饼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
先看看 网络路径的有没有差别吧。
话说我们楼里都是giga 的。自己pc的ethernet 也显示是1.0G,但是速度很慢,copy 速度经常只有1M多点。
最近才被告知一幢楼里只有2个port 是真正的giga,其他都是1M bit。 因为blade 只有2个port是giga的。
靠,被忽悠了3,4年了。
专攻电子电路

发表于 2013-3-19 16:43 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我也不是developer撒。。。不容易啊,只要是有数据库沾点边的performance问题都归我
那些developer技术真不行,网络的人又会推卸责任

是TCP socket
感觉像是socket buffer size的问题?
If you let people believe that you are weak, sooner or later you’re going to have to kill them.
Advertisement
Advertisement

发表于 2013-3-19 16:44 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 北风 于 2013-3-19 15:45 编辑

看这个图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

发表于 2013-3-19 16:49 |显示全部楼层
此文章由 IsDonIsGood 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 IsDonIsGood 所有!转贴必须注明作者、出处和本声明,并保持内容完整
北风 发表于 2013-3-19 15:43
我也不是developer撒。。。不容易啊,只要是有数据库沾点边的performance问题都归我
那些developer技术真不 ...

你这DBA当得真苦逼啊~~~~
2020目标: 活着

发表于 2013-3-19 16:54 |显示全部楼层
此文章由 Fernando 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Fernando 所有!转贴必须注明作者、出处和本声明,并保持内容完整
苦逼啊,该下班了,明天再研究吧
头像被屏蔽

禁止访问

发表于 2013-3-19 17:05 |显示全部楼层
此文章由 lingg 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lingg 所有!转贴必须注明作者、出处和本声明,并保持内容完整
client version?
routing?

发表于 2013-3-19 17:16 |显示全部楼层
此文章由 哈士奇之春 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 哈士奇之春 所有!转贴必须注明作者、出处和本声明,并保持内容完整
有的快,有的慢很正常啊,资源不够呗
Advertisement
Advertisement

发表于 2013-3-19 17:41 |显示全部楼层
此文章由 workinvm 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 workinvm 所有!转贴必须注明作者、出处和本声明,并保持内容完整
System.Net.UnsafeNclNativeMethods.OSSOCK.recv
这个是.net framework 从 Socket 读数据的底层调用
上层通常对应的是这个函数
System.Net.Sockets.Socket.Receive()
如果在这个地方慢,问题多半是出在网络上, 由于不知道楼主的网络环境,我无法进一步分析。如果是固定的client慢,楼主需要检查该client对应的网络设置,如果是不固定的,则可能是多客户端访问时造成网络拥塞,可能是网络上一次查询传输的数据太多,多客户端并发时,网络带宽不够,造成时延。

特殊贡献奖章

发表于 2013-3-19 17:50 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
考,这也可以让dba来管
我们服务器最近也很慢,如果有专门的dba就好了,我也推dba那去

发表于 2013-3-19 17:51 |显示全部楼层
此文章由 workinvm 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 workinvm 所有!转贴必须注明作者、出处和本声明,并保持内容完整
刚刚看了一下楼主贴的那个图,程序是调用了 Remoting Service, 这个是 .net 2.0 提供的较老的远程调用接口,现在已经被WCF淘汰。问题应该就出在这个 remoting service 的接口调用上,如果网络没有问题,数据库那边性能也没问题,那就是这个调用返回数据量太大造成。

发表于 2013-3-19 18:39 |显示全部楼层
此文章由 joerkky 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joerkky 所有!转贴必须注明作者、出处和本声明,并保持内容完整
某个地方拥堵,很大可能是网络或者数据库,但很小概率会是本机的问题。返回数据量要大到什么程度才能让RPC handle不了啊?

发表于 2013-3-19 19:07 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
workinvm 发表于 2013-3-19 16:41
System.Net.UnsafeNclNativeMethods.OSSOCK.recv
这个是.net framework 从 Socket 读数据的底层调用
上层 ...

谢谢分析
是固定的某几个用户速度快,某几个用户速度慢,都是返回同样的东西,那是不是就说明了client的网络设置有问题?
If you let people believe that you are weak, sooner or later you’re going to have to kill them.
Advertisement
Advertisement

发表于 2013-3-19 19:23 |显示全部楼层
此文章由 joerkky 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 joerkky 所有!转贴必须注明作者、出处和本声明,并保持内容完整
网卡了就要换网卡了

发表于 2013-3-19 19:24 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
workinvm 发表于 2013-3-19 16:51
刚刚看了一下楼主贴的那个图,程序是调用了 Remoting Service, 这个是 .net 2.0 提供的较老的远程调用接口 ...

返回同样的内容client A总比client B快很多
我总认为是client的网络设置的问题

增大socket buffer可以吗?如何实现?
If you let people believe that you are weak, sooner or later you’re going to have to kill them.

发表于 2013-3-19 19:30 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
eltonfive 发表于 2013-3-19 15:30
APP Server 内存/CPU 使用状况怎样,client到App Server  网络路径有啥差别

app server, db server都很健康,network team说网络环境没有差别。。。
If you let people believe that you are weak, sooner or later you’re going to have to kill them.

发表于 2013-3-19 20:44 |显示全部楼层
此文章由 eltonfive 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eltonfive 所有!转贴必须注明作者、出处和本声明,并保持内容完整
如果不是Platform的原因, 看看这个也许有帮助,

http://social.msdn.microsoft.com ... -9c84-9aa43990f37e/

Web App Development 不太了解,猜那些速度慢的用户也许是Call Time out
Dont complain about life!

发表于 2013-3-19 22:25 |显示全部楼层
此文章由 coolrobin 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 coolrobin 所有!转贴必须注明作者、出处和本声明,并保持内容完整
搞网络的给个建议:可能不同的client (OS) ,MTU不一样?

可以在Server那端用wireshark 抓包,看看Client A 和Client B发过来的packet 也什么不一样,然后再继续看
Advertisement
Advertisement

发表于 2013-3-19 22:35 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
server端有没有rate limit?这个是最可能的原因

Windows server还有个half-open tcp connection limit的问题,看看你的windows server端有没有这个limit,如果有的话也会影响client conneciton

发表于 2013-3-19 23:44 |显示全部楼层
此文章由 audreamer 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 audreamer 所有!转贴必须注明作者、出处和本声明,并保持内容完整
先测试慢的那几个客户端到服务器段的物理连接速度是否有问题,这可以通过第三方Socket速度软件来测试,推荐开源的Iperf来测试,去http://sourceforge.net/projects/iperf/下载,下载jperf,里面带了Windows下的可执行文件,如果想用GUI非命令行,可以执行里面的JAVA程序,这个JAVA程序其实也是调用可执行文件而已,不过我喜欢命令行下的,使用方法很简单:

在服务器端运行:

iperf.exe -s

默认使用TCP 5001端口,你也可以指定其他端口。


客户端运行:

iperf.exe -c 服务器IP

默认连接到服务器的TCP 5001端口,你也可以指定其他端口,过一会后就会显示出连接速度了。


只有证明了物理连接没有问题后,再检查程序里是否存在问题,如是否有线程阻塞的问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1积分 +4 收起 理由
北风 + 4 感谢分享

查看全部评分

发表于 2013-3-20 10:48 |显示全部楼层
此文章由 workinvm 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 workinvm 所有!转贴必须注明作者、出处和本声明,并保持内容完整
北风 发表于 2013-3-19 19:24
返回同样的内容client A总比client B快很多
我总认为是client的网络设置的问题

socket buffer 对于时延较大的网络会有帮助,楼主如果从 A 和 B ping 速度差不多,估计帮助不大。
如果两边时延都差不多,目前来看有几种可能:
1. 网络问题,及A 和 B 对应的网络的limit不一样,比如A允许20Mbps, B只允许2 Mbps,这个只要用楼上的测速软件就可以测出来。
2. 软件问题,及A 和 B 是用不同用户名登录,用户A和用户B 在server端响应时处理不一样,B处理时间更长,或者由于什么原因锁定了一段时间才响应。要判断这个问题,只要在A客户端用B用户登录就可以判断出来。
3. 客户端机器问题,这个要分析客户端执行是CPU占用情况,以及看是否有防火墙之类的东西在中间。如果条件允许,可以将A,B机器互换一下测试就可以判断是否客户端机器原因造成。
能想到的就这么多了。

评分

参与人数 1积分 +4 收起 理由
北风 + 4 感谢分享

查看全部评分

发表于 2013-3-20 22:17 |显示全部楼层
此文章由 北风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 北风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
谢谢各位的帮助
今天用wireshark搞了一天
我的初步结论是网络问题,因为在wireshark里面慢的user的trace结果里有很多lsa_lookupsid3,之后还有很多rebroadcasting,快的user就没有这问题
我的猜想是因为几个domain controller的版本有问题,或许还有别的问题,交给network team了

但是这些鸟人一贯的会推责任,一年以前我刚到这里的时候就因为一个软件的tuning质疑过他们的AD server有performance问题,需要tuning,愣是给他们糖塞过去了,这次估计也好不了

真没意思,在这里处处制肘。我不知道tuning AD server能有多难,估计他们不会。。。

评分

参与人数 1积分 +5 收起 理由
zzgirl + 5 安慰一下

查看全部评分

If you let people believe that you are weak, sooner or later you’re going to have to kill them.

发表回复

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

本版积分规则

Advertisement
Advertisement
返回顶部