提交 fb4144f2 编写于 作者: M MRXLT 提交者: GitHub

Merge pull request #6 from PaddlePaddle/develop

update from origin
# 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.
先完成此消息的编辑!
想要评论请 注册