MongoDB性能测试

 

详情参考http://goo.gl/VFOvx

简单总结一下MongoDB的性能特点

 

  1. 文件系统非常重要,请务必选择ext4或者xfs.如果使用ext2,插入性能会有大幅度的下降,且出现随机不稳定的情况,主要由于ext2对大文件读写性能较差导致
  2. mongodb的插入性能是有cheat嫌疑的,mongodb的写策略是使用mmap直接操作,定时用msync flush(默认是60秒一次),这种设计方式在内存没用尽的情况,写入速度会接近30000 documents/s 不过一旦内存用尽,写入就远远达不到这个速度
  3. shard的插入性能不够好,主要由于写入的时候,实际是先写入到一个节点中,然后由该节点split chunk再move到其他节点中,这个目前只能通过presplit或者应用层拆分数据来优化
  4. chunksize的选择过大过小都有可能导致数据的丢失,在测试中,1.6.3 1.6.5 1.8.0都有这样的情况,所以最好不要修改这个参数,这个参数修改了对性能没有什么本质的影响
  5. mongoimport是单线程工作方式,所以导入大量数据时,应该启动多个mongoimport进行,测试中发现启动8个mongoimport性能较优
  6. mapreduce需要借助shard提高性能,单节点的mapreduce是单线程的,性能很差

你可能感兴趣的:(mapreduce,mongodb,工作)