forked from OpenAtomFoundation/pika
-
Notifications
You must be signed in to change notification settings - Fork 9
Performance
jojo59516 edited this page May 24, 2017
·
27 revisions
- 1 前言
- 2 测试方式
- 2.1 硬件配置
- 3 读性能
- 3.1 数据远小于内存(可用内存 64 GB)
- 3.2 数据远大于内存(可用内存 2 GB)
- 3.3 数据远大于内存(可用内存 1 GB)
我们将 TerarkDB 集成到了 Pika 中,后续我们会逐步发布性能测试报告。
-
测试工具
- redis-benchmark 测试工具
- 该工具可以提供随机写入与随机读取测试
-
测试参数(未注明的参数采用默认配置)
- 总请求数:1000000
- 并发客户端数:80
- 数据库配置:
- thread-num: 8
- write-buffer-size: 1 GB
- target-file-size-base: 64 MB
- block-cache-size: 640 MB
- allow-mmap-reads: yes
-
测试对象
- Qihoo360 的 Pika
- Terark 的 Pika on TerarkDB
-
测试数据
- 本测试中使用 Amazon movie data (~ 8 million reviews) 数据进行测试
-
测试数据集尺寸
- 约为 9.1 GB
- 约 800 万条数据
- 平均每条数据大约 1 KB
- Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
- Kingston 16G @ 2133 MHz x4 (64G Total)
- SanDisk SD8SBAT256G1122 (256G SSD)
- Ubuntu 16.04.2 LTS
我们在开始读性能测试之前,首先将所有数据写入数据库,然后执行压缩(compact)操作,最后开始读性能测试。
-
内存受限情况通过修改 Linux 内核参数直接限制系统可用内存来达到限制总内存开销的目的
-
数据库大小比较
-
得益于 TerarkZipTable 的压缩算法,Pika on TerarkDB 的数据库尺寸远小于原版 Pika
-
内存占用大小比较
-
由于 TerarkZipTable 在使用内存映射(Memory Map)时没有二次缓存,所以 Pika on TerarkDB 占用的内存更少
-
每秒查询率(QPS)性能比较
- 99.9分位延迟性能比较
- 得益于 TerarkZipTable 采用的可检索压缩技术,使得 Pika on TerarkDB 的随机访问性能得到极大提升
- 每秒查询率(QPS)性能比较
- 99.9分位延迟性能比较
- 由于 Pika on TerarkDB 占用内存小,在内存受限的情况下依然可以表现出大部分性能,而原版 Pika 则极大地受到内存限制,发挥不出性能
- 每秒查询率(QPS)性能比较
- 99.9分位延迟性能比较
- 进一步限制内存后 Pika on TerarkDB 也受制于有限的内存资源而发挥不了全部性能。但由于它本身比原版 Pika 需要的内存资源少,因此表现出来的性能依然更加优秀