This action will force synchronization from 百度开源/BRPC, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
rpc_press无需写代码就压测各种rpc server,目前支持的协议有:
先按照Getting Started编译好brpc,再去tools/rpc_press编译。
在CentOS 6.3上如果出现找不到libssl.so.4的错误,可执行ln -s /usr/lib64/libssl.so.6 libssl.so.4临时解决
rpc_press会动态加载proto文件,无需把proto文件编译为c++源文件。rpc_press会加载json格式的输入文件,转为pb请求,发向server,收到pb回复后如有需要会转为json并写入用户指定的文件。
rpc_press的所有的选项都来自命令行参数,而不是配置文件.
如下的命令向下游0.0.0.0:8002用baidu_std重复发送两个pb请求,分别转自'{"message":"hello"}和'{"message":"world"},持续压力直到按ctrl-c,qps为100。
json也可以写在文件中,假如./input.json包含了上述两个请求,-input=./input.json也是可以的。
必需参数:
可选参数:
常用的参数组合:
rpc_press启动后会默认在8888端口启动一个dummy server,用于观察rpc_press本身的运行情况:
./rpc_press -proto=echo.proto -service=example.EchoService -method=Echo -server=0.0.0.0:8002 -input=./input.json -duration=0 -qps=100
TRACE: 01-30 16:10:04: * 0 src/brpc/server.cpp:733] Server[dummy_servers] is serving on port=8888.
TRACE: 01-30 16:10:04: * 0 src/brpc/server.cpp:742] Check out http://db-rpc-dev00.db01.baidu.com:8888 in your web browser.</code>
dummy_server启动时会在终端打印日志,一般按住ctrl点击那个链接可以直接打开对应的内置服务页面,就像这样:
切换到vars页面,在Search框中输入rpc_press可以看到当前压力的延时分布情况:
你可以通过-dummy_port参数修改dummy_server的端口,请确保端口可以在浏览器中访问。
如果你无法打开浏览器,命令行中也会定期打印信息:
2016/01/30-16:19:01 sent:101 success:101 error:0 total_error:0 total_sent:28379
2016/01/30-16:19:02 sent:101 success:101 error:0 total_error:0 total_sent:28480
2016/01/30-16:19:03 sent:101 success:101 error:0 total_error:0 total_sent:28581
2016/01/30-16:19:04 sent:101 success:101 error:0 total_error:0 total_sent:28682
2016/01/30-16:19:05 sent:101 success:101 error:0 total_error:0 total_sent:28783
2016/01/30-16:19:06 sent:101 success:101 error:0 total_error:0 total_sent:28884
2016/01/30-16:19:07 sent:101 success:101 error:0 total_error:0 total_sent:28985
2016/01/30-16:19:08 sent:101 success:101 error:0 total_error:0 total_sent:29086
2016/01/30-16:19:09 sent:101 success:101 error:0 total_error:0 total_sent:29187
2016/01/30-16:19:10 sent:101 success:101 error:0 total_error:0 total_sent:29288
[Latency]
avg 122 us
50% 122 us
70% 135 us
90% 161 us
95% 164 us
97% 166 us
99% 172 us
99.9% 199 us
99.99% 199 us
max 199 us
上方的字段含义应该是自解释的,在此略过。下方是延时信息,第一项"avg"是10秒内的平均延时,最后一项"max"是10秒内的最大延时,其余以百分号结尾的则代表延时分位值,即有左侧这么多比例的请求延时小于右侧的延时(单位微秒)。一般性能测试需要关注99%之后的长尾区域。
Q: 如果下游是基于j-protobuf框架的服务模块,压力工具该如何配置?
A:因为协议兼容性问题,启动rpc_press的时候需要带上-baidu_protocol_use_fullname=false
Sign in for post a comment
Comment ( 0 )