View Source

h1. 准备工作:

环境:看一下测试环境,主要看文件打开数是否限制: ulimit \-a , 看 “open files” 的数量是否够
* 文件打开数设置方法:设置完成以后重新登录

{noformat}
修改/etc/security/limits.conf 添加如下一行:

* - nofile 301024

修改/etc/pam.d/login添加如下一行,根据操作系统的32位、64位分别选择一行

session required /lib/security/pam_limits.so #32bit
session required /lib64/security/pam_limits.so #64bit
{noformat}

* 大量状态为TIME-WAIT的TCP连接、以及本地端口不够的修改方法

{noformat}
编辑/etc/sysctl.conf文件,增加下面几行:

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.netfilter.ip_conntrack_max = 1048576

再执行以下命令,让修改结果立即生效:
/sbin/sysctl -p
{noformat}



h1. 了解测试工具

性能测试工具下载: [^venus-benchmark-3.2.16-distribution.zip]


解压,进入目录,执行 bin/benchmark \--help,根据提示填写相应的参数,

展示如下信息:

!bechmark-help.bmp|border=1!

参数解说:
|| 参数名 || 属性值 || 描述说明 ||
| d | | 可以不填,只要带了这个参数,则表示输出交互的数据包信息 |
| P | 端口号(必填) | 远程服务器端口号 |
| h | 主机名或者Ip地址(必填) | 远程服务器ip地址或者主机名 |
| c | 数字(必填) | 并发连接数,根据业务具体来测试,单台机器一般不要超过50000 |
| n | 数字(必填) | 总共测试多少次请求 |
| f | 请求文件(必填) | 具体请看例子 query/helloService-getHello.xml |
| s | 序列化方式(默认:0) | 序列化方式:0为json,1为bson |
| u | 用户名 | 如果venus Server 设置了用户名密码认证方式,需要填写该参数 |
| p | 密码 | 如果venus Server 设置了用户名密码认证方式,需要填写该参数 |
| t | 超时时间(单位:秒) | 如果venus在这个时间内无响应则会多一个超时 |
| C | 请求环境文件(可选) | 具体请看例子 query/helloService-getHello.xml,也可以参阅 amoeba中的benchmark([http://docs.hexnova.com/amoeba/ch06s04.html] ) |

h1. 实战例子

!bechmark-result.bmp|border=1!