1亿条记录的亿条记录的MongoDB数据库随机查询性能测试数据库随机查询性能测试
主要为大家分享下1亿条记录的MongoDB数据库随机查询性能测试结果,需要的朋友可以参考下
mongdb性能压力测试,随机查询,数据量1亿条记录
操作系统centos6.4x64位
从测试结果看,当mongodb将数据全部载入到内存后,查询速度根据文档的大小,性能瓶颈通常会是在网络流量和CPU的处
理性能(该次测试中当数据全部在内存后,纯粹的查询速度可以稳定在10W/S左右,系统load可以维持在1以下,由于此时
CPU已经被使用到极限了,当并发再大时load值会直线飙升,性能急剧下降)。
压力生成服务器与Mongodb服务器基本配置
cpu型号:Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
内存:64G
硬盘:10K转速 6块做RAID0,raid卡cache 1G(磁盘的IO性能决定MONGODB将非热点数据载入到内存的速度,当热点数据
全部在内存后,IO性能可以忽略)
网卡速度:接入千兆交互机,速度1000MB
数据结构,user_id为索引键值为0-99999999,数据总大小约37G左右,全部载入内存后约32G
> db.thing.findOne();
{
"_id" : ObjectId("51fd6830c6db9d15676f89ef"),
"ip" : "192.168.168.254",
"g_roup" : "kiwi",
"mac" : "of:fd:67:8c:2f:8f",
"address" : "hongmei1801num",
"user_id" : 10000000,
"name" : "user10000000",
"title" : "system",
"database" : "mongodb",
"telphone" : NumberLong("15718441234"),
"mail" : "yj@chinapnr.com",
"os" : "win7",
"company" : "chinapnr"
}
压力生成脚本开启40个进程,并发随机查询
[root@mdb-166 app]# cat mselectmongodb.py
import time,pymongo,multiprocessing,random,string
class SqlToMongo:
def m_sql(self,x,y):
server="mongodb://python:oracle@192.168.4.167:27017/syslog"
conn=pymongo.Connection(server)
db=conn.syslog