Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4010504
  • 博文数量: 251
  • 博客积分: 11197
  • 博客等级: 上将
  • 技术积分: 6862
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-05 14:41
个人简介

@HUST张友东 work@taobao zyd_com@126.com

文章分类

全部博文(251)

文章存档

2014年(10)

2013年(20)

2012年(22)

2011年(74)

2010年(98)

2009年(27)

分类: LINUX

2013-04-22 19:56:38

QA同学反映,对TFS进行压力测试时,网卡一直压不上去,看了下他们的测试环境,发现在测试时客户端的日志都是往屏幕打印的,将日志重定向到文件,压力马上上去了。日志打印到屏幕其实是个非常耗时的事情,打印到屏幕会影响到客户端的请求并发;这个问题解决了,QA同学又反映另一个奇怪的现象。

如下图所示,client1和client2的请求分别被定向到server1和server2。 (4台独立的物理机)

  • 单个客户端
    • case1:只启动client1,client1不打印日志,server1的网卡能跑到110M/S左右(千兆网卡,接近满)
    • case2:只启动client1,client1打印日志,server1的网卡能压到90M/S左右,对比可以看出打印日志的影响
  • 两个客户端
    • case3:启动client1,打印日志;启动client2,不打印日志;server1网卡压到90MB/S左右,server2网卡压到110MB/S左右
    • case4:启动client1,打印日志;启动client2,打印日志;server1的网卡压到40MB/S左右,server2网卡压到40MB/S左右

问题出现了,client1、client2都打印日志时,server1、server2的网卡都只能压到40MB/S,而这两个测试之间是独立的。

分析发现,这两个测试唯一共享的资源就是我工作PC的SecureCRT终端。client1、client2打印到日志,最终是要通过网络传输到我PC上的SecureCRT打印的,case3里日志打印对测试无影响,因为这时传输到SecureCRT的日志量还没有达到影响测试的程度;而case4里两个client都打印时,日志都要传输到SecureCRT,此时PC的网卡就成为瓶颈了,client1、client2打印的日志要等待传输到PC上打印,最终导致client的并发上不去,从而server上的压力上不去。

验证:通过两个不同的PC,分别登录到client1、client2,重新测试case4,结果server1、server2的网卡都能压到90MB/S。

原因真的很坑爹,但通过ssh客户端(secureCRT、xshell、putty等)登录到多个server应该是很常见的工作模式,此时往屏幕打印信息不光对自身有影响,也会影响到其他登录的server,所以性能或压力测试时,强烈建议不要打印日志到屏幕上。

阅读(5062) | 评论(2) | 转发(0) |
0

上一篇:gdb调试任意函数

下一篇:fsync性能问题

给主人留下些什么吧!~~

zyd_cu2013-05-27 20:21:49

的确是这样 

jiangwen1272013-05-27 15:21:57

遇到过,而且输出到屏幕对性能影响很大