Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
镜像
OpenAtomFoundation
pika
提交
16cfedda
pika
项目概览
镜像
/
OpenAtomFoundation
/
pika
11 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
pika
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
16cfedda
编写于
11月 03, 2016
作者:
K
KernelMaker
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of github.com:Qihoo360/pika
上级
9be90c33
83ce3600
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
121 addition
and
34 deletion
+121
-34
README.md
README.md
+59
-17
README_CN.md
README_CN.md
+57
-12
src/pika_binlog_sender_thread.cc
src/pika_binlog_sender_thread.cc
+1
-1
src/pika_slaveping_thread.cc
src/pika_slaveping_thread.cc
+4
-4
未找到文件。
README.md
浏览文件 @
16cfedda
...
...
@@ -71,14 +71,14 @@ make __REL=1
## Usage
```
./output/bin/pika -c ./conf/pika.conf
./output/bin/pika -c ./conf/pika.conf
```
If failed, move pika source/lib/_VERSION/lib/ to the rpath defined in Makefile and relanch.
~~~
cp PIKA_SOURCE/lib/_VERSION/* RPATH
~~~
```
cp PIKA_SOURCE/lib/_VERSION/* RPATH
```
The PIKA_SOURCE stands for pika source code's root directory;
The __VERSION represents the OS's version, such as 6.2, 5.4...
The RPATH is defined in pika's Makefile
...
...
@@ -86,27 +86,69 @@ The RPATH is defined in pika's Makefile
##Performance
```
Server Info:
###test environment
2 same hardware server, one for running pika, the other for running redis-benchmark
CPU: 24 Cores, Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz
MEM: 165157944 kB
OS: CentOS release 6.2 (Final)
NETWORK CARD: Intel Corporation I350 Gigabit Network Connection
Client Info:
Same as Server
Test:
Pika run with 18 worker threads, and we test it using 40 client;
1. Write Performance:
Client push data by set, hset, lpush, zadd, sadd, each interface has 10000 key range;
result: 110000 qps
2. Read Performance:
Client pull data by get, hget, lindex, zscore, smembers, 25000000 keys stored in pika and each interface has 5000000 key range
result: 170000 qps
###test interfaces
Set, Get
###test method
run pika with 16 work threads, run redis-benchmark on another server as follow:
./redis-benchmark -h ... -p ... -n 1000000000 -t set,get -r 10000000000 -c 120 -d 200
execute 1 billion Set and 1 billion Get commands altogether
###test result
```
Set
1000000000 requests completed in 11890.80 seconds
18.09% <= 1 milliseconds
93.32% <= 2 milliseconds
99.71% <= 3 milliseconds
99.86% <= 4 milliseconds
99.92% <= 5 milliseconds
99.94% <= 6 milliseconds
99.96% <= 7 milliseconds
99.97% <= 8 milliseconds
99.97% <= 9 milliseconds
99.98% <= 10 milliseconds
99.98% <= 11 milliseconds
99.99% <= 12 milliseconds
...
100.00% <= 19 milliseconds
...
100.00% <= 137 milliseconds
84098.66 requests per second
```
```
Get
1000000000 requests completed in 9063.05 seconds
84.97% <= 1 milliseconds
99.76% <= 2 milliseconds
99.99% <= 3 milliseconds
100.00% <= 4 milliseconds
...
100.00% <= 33 milliseconds
110338.10 requests per second
```
###pika vs ssdb ([Detail](https://github.com/Qihoo360/pika/wiki/pika-vs-ssdb))
<img
src=
"http://imgur.com/rGMZmpD.png"
height =
"400"
width =
"480"
alt=
"1"
>
<img
src=
"http://imgur.com/gnwMDof.png"
height =
"400"
width =
"480"
alt=
"10"
>
##pika vs redis
<img
src=
"http://imgur.com/k99VyFN.png"
height =
"400"
width =
"600"
alt=
"2"
>
##Documents
...
...
README_CN.md
浏览文件 @
16cfedda
...
...
@@ -89,24 +89,69 @@ RPATH在Makefile定义,表示的是程序运行的库预先加载路径
## 性能
###测试环境:
```
服务端配置
:
相同配置服务端、客户机各一台
:
处理器:24核 Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz
内存:165157944 kB
操作系统:CentOS release 6.2 (Final)
网卡:Intel Corporation I350 Gigabit Network Connection
客户端配置:
同服务端
测试结果:
pika配置18个worker,用40个客户端;
1. 写性能测试:
方法:客户端依次执行set、hset、lpush、zadd、sadd接口写入数据,每个数据结构10000个key;
结果:qps 110000
2. 读性能测试:
方法:客户端一次执行get、hget、lindex、zscore、smembers,每个数据结构5000000个key;
结果:qps 170000
```
###测试接口:
```
Set、Get
```
###测试方法:
```
pika配16个worker,客户机执行 ./redis-benchmark -h ... -p ... -n 1000000000 -t set,get -r 10000000000 -c 120 -d 200
通过set和get接口对pika进行10亿次写入+10亿次读取
```
###测试结果:
```
Set
1000000000 requests completed in 11890.80 seconds
18.09% <= 1 milliseconds
93.32% <= 2 milliseconds
99.71% <= 3 milliseconds
99.86% <= 4 milliseconds
99.92% <= 5 milliseconds
99.94% <= 6 milliseconds
99.96% <= 7 milliseconds
99.97% <= 8 milliseconds
99.97% <= 9 milliseconds
99.98% <= 10 milliseconds
99.98% <= 11 milliseconds
99.99% <= 12 milliseconds
...
100.00% <= 19 milliseconds
...
100.00% <= 137 milliseconds
84098.66 requests per second
```
```
Get
1000000000 requests completed in 9063.05 seconds
84.97% <= 1 milliseconds
99.76% <= 2 milliseconds
99.99% <= 3 milliseconds
100.00% <= 4 milliseconds
...
100.00% <= 33 milliseconds
110338.10 requests per second
```
###与SSDB性能对比([详情](https://github.com/Qihoo360/pika/wiki/pika-vs-ssdb))
<img
src=
"http://imgur.com/rGMZmpD.png"
height =
"400"
width =
"480"
alt=
"1"
>
<img
src=
"http://imgur.com/gnwMDof.png"
height =
"400"
width =
"480"
alt=
"10"
>
###与Redis性能对比
<img
src=
"http://imgur.com/k99VyFN.png"
height =
"400"
width =
"600"
alt=
"2"
>
## 文档
1.
[Wiki] (https://github.com/Qihoo360/pika/wiki)
...
...
src/pika_binlog_sender_thread.cc
浏览文件 @
16cfedda
...
...
@@ -289,7 +289,7 @@ void* PikaBinlogSenderThread::ThreadMain() {
}
// error
cl
ose
(
cli_
->
fd
()
);
cl
i_
->
Close
(
);
sleep
(
1
);
}
return
NULL
;
...
...
src/pika_slaveping_thread.cc
浏览文件 @
16cfedda
...
...
@@ -51,7 +51,7 @@ void* PikaSlavepingThread::ThreadMain() {
while
(
true
)
{
if
(
should_exit_
)
{
LOG
(
INFO
)
<<
"Close Slaveping Thread now"
;
cl
ose
(
cli_
->
fd
()
);
cl
i_
->
Close
(
);
g_pika_server
->
pika_binlog_receiver_thread
()
->
KillBinlogSender
();
break
;
}
...
...
@@ -69,13 +69,13 @@ void* PikaSlavepingThread::ThreadMain() {
if
(
now
.
tv_sec
-
last_interaction
.
tv_sec
>
30
)
{
//timeout;
LOG
(
WARNING
)
<<
"Ping master timeout"
;
cl
ose
(
cli_
->
fd
()
);
cl
i_
->
Close
(
);
g_pika_server
->
pika_binlog_receiver_thread
()
->
KillBinlogSender
();
break
;
}
}
else
{
LOG
(
WARNING
)
<<
"Ping master error"
;
cl
ose
(
cli_
->
fd
()
);
cl
i_
->
Close
(
);
g_pika_server
->
pika_binlog_receiver_thread
()
->
KillBinlogSender
();
break
;
}
...
...
@@ -87,7 +87,7 @@ void* PikaSlavepingThread::ThreadMain() {
LOG
(
WARNING
)
<<
"Slaveping, Connect timeout"
;
if
((
++
connect_retry_times
)
>=
30
)
{
LOG
(
WARNING
)
<<
"Slaveping, Connect timeout 10 times, disconnect with master"
;
cl
ose
(
cli_
->
fd
()
);
cl
i_
->
Close
(
);
g_pika_server
->
pika_binlog_receiver_thread
()
->
KillBinlogSender
();
connect_retry_times
=
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录