首页 > 代码库 > Erlang自研引擎与Redis-Mensia比较
Erlang自研引擎与Redis-Mensia比较
数据库性能测试
windows
测试环境: 系统:win7 ,内存:16G , CPU:Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.40GHz ,p25单节点
写(每条数据大小50Byte):
速率(不间断写入):25000条/秒
写入上限:1200w条
无锁读(单条数据50Byte):
速率(不间断读取):35000条/秒
上限:无
锁读(单条数据50Byte):
速率(不间断读取):30000条/秒
上限:无
写(单条数据200k):
速率(不间断写入): 5000条/秒
上限: 5W条
同时读写(单条数据50Byte):
速率: 20000条/秒
上限:800w条
写入速率瓶颈在磁盘io,写入规模与内存有关。超过写上限时,内存飙升,写入超时。
linux(单节点)
测试环境:
系统:Centos 5.8 ,内存:8G , CPU:Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.40GHz ,p25单节点
写(每条数据大小50Byte):
速率(不间断写入):25000条/秒(数据规模10w条)
写入上限:600w条
无锁读(单条数据50Byte):
速率(不间断读取):3000条/秒(数据规模10w条)
上限:无
锁读(单条数据50Byte):
速率(不间断读取):2500条/秒(数据规模10w条)
上限:无
写(单条数据200k):
速率(不间断写入): 2000条/秒(数据规模5w条)
上限: 5W条
同时读写(单条数据50Byte):
速率: 20000条/秒
上限:500w条
写入速率瓶颈在磁盘io,写入规模与内存有关。超过写上限时,内存飙升,写入超时。
linux(集群)
服务器环境:
系统:Centos 5.8 ,内存:8G , CPU:Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.40GHz 测试项目:p25 (由两个slave节点组成的集群)
客户端环境(本地虚拟机):
系统:Centos 7.0, 内存:8G , CPU:Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz 3.40GHz,测试方法:用tsung(压力测试工具)模拟多个客户端异步向服务器发起请求(每一次请求对应一次数据写入)
写(单条数据50k):
速率:7000条/秒
规模:100w条
读(单条数据50k):
速率: 7000条/秒
规模:100w条
同时读写(单条数据50k):
速率:2500条/秒
规模:50w条
性能瓶颈在网络io。
mensia 、自研数据库、redis 比较
mnesia | 自研数据库 | redis | |
测试环境 | linux 虚拟机 centos 7.0, erlang otp 17.5 | linux 虚拟机 centos 7.0, erlang otp 17.5 | linux 虚拟机 centos 7.0, erlang otp 17.5, Redis 2.8.7, eredis |
单节点单进程(数据规模100w条) | |||
---|---|---|---|
写耗时(单位秒) | 36.6 | 37.3 | 223.5 |
读耗时(单位秒) | 29.8 | 14.0 | 217.4 |
删除耗时(单位秒) | 36.8 | 25.6 | 221 |
同时读写耗时(单位秒) | 38.2/41.8 | 38.5/44.0 | 300/301 |
单节点多进程(数据规模100w条) | |||
写平均耗时(10个进程,单位秒) | 104.3 | 154(无锁) | 373 |
读平均耗时(10个进程,单位秒) | 90.7 | 54.3 | 373 |
读平均耗时(20个进程,单位秒) | 196.1 | 97.0 | 746 |
读平均耗时(40个进程,单位秒) | 430.9 | 205.6 | 1465 |
读平均耗时(50个进程,单位秒) | 545.9 | 258.7 | 1773 |
单节点多进程(数据规模10w条) | |||
读平均耗时(10个进程,单位秒) | 8.6 | 5.2 | 38 |
读平均耗时(20个进程,单位秒) | 19.2 | 9.8 | 74 |
读平均耗时(40个进程,单位秒) | 42.0 | 20.6 | 142 |
读平均耗时(60个进程,单位秒) | 67.3 | 31.7 | 214 |
单节点多进程(数据规模100w条,多张表) | |||
读写平均耗时(10个进程,10张表,单位秒) | 83/71 | 52/135 | 125/130 |
读写平均耗时(20个进程,20张表,单位秒) | 179/170 | 115/270 | 243/251 |
读写平均耗时(40个进程,40张表,单位秒) | 400/404 | / | 486/537 |
redis
eredis 支持的命令
-SET 插入或修改 -DEL 删除 -GET 读取
-MSET 多条数据插入 -MGET 多条数据读取
HASH hash相关命令
LIST list相关命令 -LPOP -LPUSH -RPUSH -LRANGE
SET set相关命令 -SADD
Transactions 事务相关命令 -MULTI -EXEC
Pipelining -多条语句顺序执行
redis 安装
服务端安装部署
http://www.cnblogs.com/haoxinyue/p/3620648.html
http://blog.csdn.net/rachel_luo/article/details/8858250
客户端编译 http://blog.csdn.net/u012973744/article/details/29566121
redis 分布式部署
http://blog.csdn.net/zq9017197/article/details/17357219
http://www.kokojia.com/article/9496.html
http://blog.csdn.net/pi9nc/article/details/17719737
Erlang自研引擎与Redis-Mensia比较