如何使用grpc_cli测量gRPC调用的响应时间?
回答
grpc_cli 本身没有内置类似curl那种一键输出请求各阶段响应时间的专用参数,但完全可以测量调用耗时,常用方法有两种:
- 最快获取总响应耗时:直接用系统自带的
time命令套在grpc_cli调用外面即可,不需要改任何额外配置
示例命令:
命令执行完成后输出结果里的time grpc_cli call localhost:50051 demo.UserService/GetUser '{"user_id": 123}'real字段,就是从命令启动到收到完整响应的总时间。这个数值会带极少量grpc_cli进程本身的启动开销,占比非常低,日常验证接口大概耗时的场景精度完全够用。 - 测量排除额外开销的纯RPC耗时:提前和服务端建立连接,避开进程启动、连接建立的干扰
操作步骤:- 执行
grpc_cli call <服务地址> <服务名/方法名>进入交互模式,这一步grpc_cli会自动完成和服务端的连接建立 - 等连接就绪后再输入请求参数发起调用,用脚本或计时工具记录从发送请求到收到完整响应的时间差,得到的就是纯RPC链路的耗时,没有杂项开销干扰。
- 执行
补充:如果需要统计多次调用的平均耗时、P95/P99等分位值,可以写简单的shell循环重复发起调用自行统计。
grpc_cli本身没有自带压测、分位值统计的能力,这类专业压测场景建议换用专门的gRPC压测工具。
内容的提问来源于stack exchange,提问作者xuhdev
相关产品推荐
相关产品推荐

