正文
TiDB也曾一度进入了我们重点调研对象,只是由于目前公司的DB生态主要还是在MGR、MongoDB、MySQL上,在可预见的需求中,也没有能充分发挥TiDB的场景,所以就暂时搁置了。
ELK-stack提供的套件确实让ES很有吸引力,公司用ES集群也有较长时间了。ES优势在于检索和数据分析领域,也正是因为其检索和分析的功能的强大,无论写入、查询和存储成本都比较高,在日志处理的这个场景下,性价比略低,所以也被pass了。
业务操作日志读多写少,很适合文档型数据库MongoDB的特点。同时,MongoDB在业界得到了广泛的使用,公司也有很多业务在使用,在MongoDB上积累了一定的运维经验,最终决定选择MongoDB作为新日志系统存储方案。
为了验证MongoDB的性能能否达到要求,我们搭建了MongoDB集群,机器配置、架构图和测试结果如下:
MongoDB集群3台机器配置如下:
CPU
|
内存
|
硬盘
|
OS
|
Mongo版本
|
8核
|
15G
MongoDB 内存分配单节点8G
|
100G
|
CentOS release 6.6 (Final)
|
3.2.17
|
本次MongoDB测试采用YCSB
(https://github.com/brianfrankcooper/YCSB)
性能测试工具,ycsb的workloads目录下保存了6种不同的workload类型,代表了不同的压测负载类型,本次我们只用到了其中5种,具体场景和测试结果如下。
workloada
|
100%插入,用来加载测试数据
|
workloadb
|
读多写少,90%读,10%更新。
|
workloadc
|
读多写少,100%读。
|
workloadd
|
读多写少,90%读,10%插入。
|
workloadf
|