网络IO型程序压力测试要点

转载 2015年07月07日 15:25:34

一.突破客户端端口数限制

  • 这是第一个会遇到的问题,同一IP地址,最大端口只能到65535。
  • 现在能够直接找到的原因是TCP协议中(rfc793)定义了报头的端口长度为16位。(216=65536)
  • 但是从计算机网络的发展来看,端口长度定义同IPv4定义一样,都是当时的同志们拍脑袋的结果。

突破的办法

  • 一个机器绑定多个IP地址。
  • 搞无数机器或者虚拟机。

二.防止gc影响测试结论

  • 如果压力程序为java,要小心full gc导致单次请求时间加长。
  • 从java角度,随时jstat -gcutil跟踪client的情况,很有必要。

一些推荐的参数

  • 24G的机器: -XX:ParallelCMSThreads=8 -Xms12G -Xmx12G -XX:PermSize=128m -XX:MaxPermSize=512m -XX:MaxDirectMemorySize=1280m
  • 细节慢慢调。
  • 如果业务逻辑不重的情况,gc未必有这么明显的影响。

三.防止客户端性能问题影响结论

  • 随时关注client的cpu load mem的情况。
  • loading test过程中由于client的性能问题,经常会影响结论。

推荐的办法

  • 定时记录各项数据,对比观察。

四.防止客户端线程数过多

  • 因为要模拟大量用户,很有可能去启动大量的线程。
  • 线程的数量太多后基本都是自己先挂了。

解决

  • 用循环来近似模拟多用户。
  • 使用scala akka erlang这样的并发模型。

五.其他一些细节

  • 同时连接数与同时发数据人数是两个天壤之别的数,前者对系统影响很小,后者的增长才是系统的压力所在。
  • 尽可能模拟连接数与发数据人数目标比例。
  • 平衡压力尽可能长的时间去压有可能会发现累积性问题。
  • 机器越多越方便。


原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]

相关文章推荐

linux 下用iperf 做网络io性能测试

1。在两台服务器上安装iperf.     yum -y install iperf  2. 在一台服务器上执行   iperf -s 3.在另一台服务器上执行 iperf -c...

测试linux网络和磁盘IO脚本

#!/bin/sh let interval=2 t=`date +%T` result=`cat /proc/net/dev |grep p2p2|sed 's/p2p2://g'` rb1...

linux下的CPU、内存、IO、网络的压力测试工具与方法介绍

转载地址:http://wushank.blog.51cto.com/3489095/1585927 一、对CPU进行简单测试: 1、通过bc命令计算特别函数 例:计算圆周率 ...

网络服务器压力测试程序

  • 2011-12-15 15:10
  • 903KB
  • 下载

io系统的压力测试工具-fio

author:skate time:2012/04/11   io系统的压力测试工具-fio   fio是一个非常灵活的io测试工具,他可以通过多线程或进程模拟各种io操作 随着块设备的发...
  • wyzxg
  • wyzxg
  • 2012-04-12 15:40
  • 44069

怎样用Android中的monkey对应用程序做自动化压力测试

先看简介,然后给出一个使用的小实例。 简介 Monkey是一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流,实现对正在开发的应用程序进行压力测 试。Monk...

风云网络压力测试2009

  • 2009-04-13 18:48
  • 1.06MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)