kaywang 发表于 2015-7-7 09:25:45

mongodb效率的简单测试

  测试环境:
  网络:内部的局域网
  服务器:4核,2.7GHZ,4g,1t
  客户端:i3,4g
  
  样本数据:
  key:数字
  value:2.66k xml数据
  
  测试1
  从客户端插入1百万条数据到服务器端数据库mongodb
  用时9分7秒
  数据库大小:3.95GB
  
  测试2
  从客户端插入1千万条数据到服务器端数据库mongodb
  用时1小时55分16秒
  数据库大小:29.9GB
  服务器资源:
  内存占用:3.8G,虚拟内存60G
  cpu:10%左右
  客户端:cpu 15%左右.
  测试3
  (压缩字符串)从客户端插入1百万条数据到服务器端数据库mongodb
  用时:4分51秒            不压缩的是9分7秒
  数据库大小:1.95GB       不压缩的是3.95GB
  测试4
  测试样本:2.9m的excel文件
  用小文件模式(存在document中)插入673条=1.95GB
  用时,4分30秒
  测试5
  测试样本:2.9m的excel文件
  用大文件模式插入673条=1.95GB
  用时30分43秒
  结论:
  可以看出1百万和1千万的时间差距很大,原因就是由于1千万的插入过程中,物理内存耗尽,开始使用虚拟内存,故效率大大降低。
  mongoDB占用内存和虚拟内存、网络带宽很多,服务器和客户端cpu占用较少,服务器升级应注重内存和硬盘。计通比较低。可以用压缩数据的方式提高计通比,从而提高程序的效率。
  mongoDB储存文件的限制是文件大小要小于4m。对于大于4m的文件,则必须用GridFS方式储存,参见
  http://www.iyunv.com/lipan/archive/2011/03/21/1989409.html#viewSource
  所以插入大于4m的文件会慢的多,可以考虑从客户端限制excel文件的大小(例如要求用户将一个workbook分成几个单独的sheet).
  
页: [1]
查看完整版本: mongodb效率的简单测试