Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Serving
提交
e90db48e
S
Serving
项目概览
PaddlePaddle
/
Serving
大约 1 年 前同步成功
通知
186
Star
833
Fork
253
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
105
列表
看板
标记
里程碑
合并请求
10
Wiki
2
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Serving
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
105
Issue
105
列表
看板
标记
里程碑
合并请求
10
合并请求
10
Pages
分析
分析
仓库分析
DevOps
Wiki
2
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e90db48e
编写于
8月 13, 2019
作者:
Y
yangrui07
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add cube server performance doc
上级
a330a560
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
41 addition
and
0 deletion
+41
-0
cube/doc/performance.md
cube/doc/performance.md
+41
-0
未找到文件。
cube/doc/performance.md
0 → 100644
浏览文件 @
e90db48e
# Cube Server 社区版本性能报告
## 机器配置
Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
## 测试数据
100w条样例kv 数据。 key为uint_64类型,单条value长度 40 Byte (一般实际场景对应一个10维特征向量)。
## 单Key高qps访问场景
一般来说实际预估服务生产环境下,单key访问场景较少,不过单机qps依然是一个比较重要的性能指标,故在下表提供了不同qps下单机Cube server性能指标。
| qps | 10w | 50w | 100w |
|---|---|---|---|
|kps|10w|50w|100w|
|cpu(top)| 6.5% | 38.3% | 71.4% |
|client端延迟| avg 196 us
<br>
50% 160 us
<br>
70% 188 us
<br>
90% 292 us
<br>
95% 419 us
<br>
97% 547 us
<br>
99% 835 us
<br>
99.9% 1556 us
<br>
99.99% 1779 us| avg 563 us
<br>
50% 342 us
<br>
70% 502 us
<br>
90% 1063 us
<br>
95% 1703 us
<br>
97% 2399 us
<br>
99% 4036 us
<br>
99.9% 7195 us
<br>
99.99% 7340 us| avg 4234 us
<br>
50% 3120 us
<br>
70% 5459 us
<br>
90% 10657 us
<br>
95% 14074 us
<br>
97% 16215 us
<br>
99% 19434 us
<br>
99.9% 29398 us
<br>
99.99% 33921 us|
## 高kps场景
生产环境下,预估服务更多的会以batch形式访问cube server,这类情况kps相对qps能更准确的判断服务性能。我们以单次100key为例,给出不同kps下cube server的相关性能指标。
| qps | 2w | 10w | 20w |
|---|---|---|---|
|kps|200w|1000w|2000w|
|cpu(top)| 3.5% | 17.8% | 37.6% |
|client端延迟| avg 375 us
<br>
50% 346 us
<br>
70% 390 us
<br>
90% 498 us
<br>
95% 582 us
<br>
97% 648 us
<br>
99% 908 us
<br>
99.9% 1623 us
<br>
99.99% 3312 us| avg 1141 us
<br>
50% 900 us
<br>
70% 1237 us
<br>
90% 2028 us
<br>
95% 2662 us
<br>
97% 3173 us
<br>
99% 4614 us
<br>
99.9% 6786 us
<br>
99.99% 6273 us| avg 1940 us
<br>
50% 1299 us
<br>
70% 1876 us
<br>
90% 3629 us
<br>
95% 5535 us
<br>
97% 7365 us
<br>
99% 10529 us
<br>
99.9% 14060 us
<br>
99.99% 16028 us|
## 分布式场景客户端延迟
在batch查询场景下,单次batch查询耗时是业务方(特别是在线预估服务)非常关心的敏感指标。在分布式场景下,单次batch查询往往要并发请求下游所有分片server,此时batch查询耗时取决于最慢的分片请求。我们在下文给出了一个典型分布式场景下的batch查询耗时。
测试条件:
cube分片数:10
client机器ping下游server机器约0.06ms
| batch size | 100 | 500 | 1000 |
|---|---|---|---|
|qps|100|100|100|
|kps|1w| 5w| 10w|
|client端延迟|avg 324 us
<br>
80% 346 us
<br>
99% 1190 us
<br>
99.9% 3662 us
<br>
99.99% 9392 us|avg 466 us
<br>
80% 488 us
<br>
99% 1492 us
<br>
99.9% 4122 us
<br>
99.99% 10612 us|avg 675 us
<br>
80% 691 us
<br>
99% 2101 us
<br>
99.9% 5169 us
<br>
99.99% 14867 us|
## 结语
上述表格主要阐述了cube server单机性能,在生产环境下,对于更高的kps(qps)压力我们可以方便地通过增加副本的方式来增强集群负载能力。 在模型大小超过单机内存限制时,我们亦可通过部署多数据分片的分布式集群来提供服务。
整体来说,cube性能能够满足当前业界各类预估服务的kv访问需求。
## PS
本文所列性能均为cube原始代码版本性能,如果根据实际情情况做适当调优:如链入tcmalloc or jemalloc、 进行numa绑定 以及 打开编译优化参数等等,都有可能进一步明显提升cube server的性能表现。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录