Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Serving
提交
9e55e268
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看板
提交
9e55e268
编写于
1月 17, 2020
作者:
M
MRXLT
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add press doc for cube
上级
298bb590
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
81 addition
and
3 deletion
+81
-3
core/cube/cube-api/src/cube_cli.cpp
core/cube/cube-api/src/cube_cli.cpp
+3
-3
core/cube/doc/performance.md
core/cube/doc/performance.md
+3
-0
core/cube/doc/press.md
core/cube/doc/press.md
+75
-0
未找到文件。
core/cube/cube-api/src/cube_cli.cpp
浏览文件 @
9e55e268
...
...
@@ -104,7 +104,7 @@ int run(int argc, char** argv, int thread_id) {
keys
.
push_back
(
key_list
[
index
]);
index
+=
1
;
int
ret
=
0
;
if
(
keys
.
size
()
>
FLAGS_batch
)
{
if
(
keys
.
size
()
>
=
FLAGS_batch
)
{
TIME_FLAG
(
seek_start
);
ret
=
cube
->
seek
(
FLAGS_dict
,
keys
,
&
values
);
TIME_FLAG
(
seek_end
);
...
...
@@ -214,8 +214,8 @@ int run_m(int argc, char** argv) {
<<
" avg = "
<<
std
::
to_string
(
mean_time
)
<<
" max = "
<<
std
::
to_string
(
max_time
)
<<
" min = "
<<
std
::
to_string
(
min_time
);
LOG
(
INFO
)
<<
" total_request = "
<<
std
::
to_string
(
request_num
)
<<
" speed = "
<<
std
::
to_string
(
1000000
*
thread_num
/
mean_time
)
LOG
(
INFO
)
<<
" total_request = "
<<
std
::
to_string
(
request_num
)
<<
" speed = "
<<
std
::
to_string
(
1000000
*
thread_num
/
mean_time
)
// mean_time us
<<
" query per second"
;
}
...
...
core/cube/doc/performance.md
浏览文件 @
9e55e268
...
...
@@ -2,6 +2,9 @@
## 机器配置
Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
## 测试方法
请参考
[
压测文档
](
./press.md
)
## 测试数据
100w条样例kv 数据。 key为uint_64类型,单条value长度 40 Byte (一般实际场景对应一个10维特征向量)。
...
...
core/cube/doc/press.md
0 → 100644
浏览文件 @
9e55e268
# cube压测文档
参考
[
大规模稀疏参数服务Cube的部署和使用
](
https://github.com/PaddlePaddle/Serving/blob/master/doc/DEPLOY.md#2-大规模稀疏参数服务cube的部署和使用
)
文档进行cube的部署。
压测工具链接:
https://paddle-serving.bj.bcebos.com/data/cube/cube-press.tar.gz
将压缩包解压,cube-press目录下包含了单机场景和分布式场景下client端压测所使用的脚本、可执行文件、配置文件、样例数据以及数据生成脚本。
## 单机场景
在单个物理机部署cube服务,使用genernate_input.py脚本生成测数据,执行test.sh脚本启动cube client端向cube server发送请求。
genernate_input.py脚本接受1个参数,示例:
```
bash
python genernate_input.py 1
```
参数表示生成的数据每一行含有多少个key,即test.sh执行的查询操作中的batch_size。
本次测试中使用的数据,key的范围为0~999999,可以根据实际数据进行修改。
test.sh脚本接受3个参数,示例:
```
bash
sh test.sh 1 127.0.0.1:8027 100000
```
第一个参数为并发数,第二个参数为cube server的ip与端口,第三个参数为qps。
输出:
脚本会进行9次压测,每次发送10次请求,每次请求耗时1秒,每次压测会打印出平均延时以及不同分位数的延时。
**注意事项:**
cube压测对于机器的网卡要求较高,高QPS的情况下单个client可能无法承受,可以采用两个或多个client,将查询请求进行平均。
如果执行test.sh出现问题需要停止,可以执行kill_rpc_press.sh
## 分布式场景
编译paddle serving完成后,分布式压测工具的客户端路径为 build/core/cube/cube-api/cube-cli,对应的源代码为core/cube/cube-api/src/cube_cli.cpp
在多台机器上部署cube服务,使用client_cli进行性能测试。
**注意事项:**
cube服务部署时的分片数和副本数会对性能造成影响,相同数据的条件下,分片数和副本数越多,性能越好,实际提升程度与数据相关。
使用方法:
```
shell
./cube-cli
--batch
500
--keys
keys
--dict
dict
--thread_num
1
```
接受的参数:
--batch指定每次请求的batch size。
--keys指定查询用的文件,文件中每一行为1个key。
--dict指定要查询的cube词典名。
--thread_num指定client端线程数
输出:
每个线程的查询的平均时间、最大时间、最小时间
进程中所有线程的查询的平均时间的平均值、最大值、最小值
进程中所有线程的总请求数、QPS
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录