未验证 提交 d32c067d 编写于 作者: W Wang Guibao 提交者: GitHub

Update PROFILING_CUBE.md

上级 748bf10b
......@@ -34,9 +34,13 @@ I1014 12:57:20.699692 38 ctr_prediction_op.cpp:169] Average 1.12746us/key
## 说明
影响Paddle Serving访问cube的因素:
Paddle Serving实例中打印出的访问cube的平响时间,与[cube社区版本性能报告](https://github.com/PaddlePaddle/Serving/blob/develop/cube/doc/performance.md)中报告的性能数值有差别,影响Paddle Serving访问cube的因素:
1) Serving实例所在机器CPU核数
1) 批量查询每个请求中key的个数
从日志可看到,Paddle Serving接收到CTR预估任务client发送的请求中,平均每个请求批量key的个数为1300,而性能报告中实测的有批量1个key、100个key和1000个key等
2) Serving实例所在机器CPU核数和客户端请求并发数
假设Paddle Serving所在云服务器上CPU核数为4,则Paddle Serving本身默认会启动4个worker线程。在client端发送4个并发情况下,Serving端约为占满4个CPU核。但由于Serving又要启动新的channel/thread来访问cube(采用的是异步模式),这些和Serving本身的server端代码共用bthread资源,就会出现竞争的情况。
......@@ -51,7 +55,7 @@ I1014 12:57:20.699692 38 ctr_prediction_op.cpp:169] Average 1.12746us/key
可以看到,当并发数等于(和大于)CPU核数时,访问cube的响应时间就会变大。
2) 稀疏参数字典分片数
3) 稀疏参数字典分片数
假设分片数为N,每次cube访问,都会生成N个channel,每个来对应一个分片的请求,这些channel和Serving内其他工作线程共用bthread资源。但同时,较多的分片数,每个分片参数服务节点上查询的计算量会变小,使得总体响应时间变小。
......@@ -62,7 +66,7 @@ I1014 12:57:20.699692 38 ctr_prediction_op.cpp:169] Average 1.12746us/key
1 | 1680
2 | 1450
3) 网络环境
4) 网络环境
百度云平台上机器间ping的时延平均为0.3ms - 0.5ms,在batch为1000个key时,平均响应时间为1450us
......@@ -70,7 +74,7 @@ Paddle Serving发布的[cube社区版本性能报告](https://github.com/PaddleP
两种环境的主要差别在于:
1) 机器间固有的通信延迟 (百度云上位0.3ms-0.5ms,性能报告测试环境0.06ms)
(1) 机器间固有的通信延迟 (百度云上位0.3ms-0.5ms,性能报告测试环境0.06ms)
2) 字典分片数 (百度云上2个分片,性能报告测试环境10个分片)
(2) 字典分片数 (百度云上2个分片,性能报告测试环境10个分片)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册