`
zhousheng29
  • 浏览: 149755 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ElasticSearch导入测试

 
阅读更多
      最近有点空,又看了看之前写的ES导入的测试记录,干脆整理一下,看是否能给大家一点参考和借鉴。
      采用的是bulkindex方式,实际上就是把index操作作为prepareIndex,扔到bulkRquest中,等积累到一定数量的时候再统一提交,这样的目的无非就是为了效率。

      测试服务器
      4*2 = 8核 2.13G, 4G*4=16G, 硬盘6T 一共4台。

      测试用例

      1. Case 1
      Index:5shards, 复制一份数据
      数据:200万数据,每条数据200个字节
      A: 200万数据 1个服务(一台服务器)3分48秒
      B: 200万数据 2个服务(一台服务器)6分10秒
      C: 200万数据 2个服务(两台服务器)8分44秒
      D: 200万数据 4个服务(四台服务器)6分20秒
      E: 200万数据 8个服务(四台服务器)12分33秒
      看来服务器少,服务少的情况下,速度反而快,数据分配需要占用时间;当服务器增加到较大时,比如4台,时间会减少,应该是并行处理起了作用,导入时间减少。

       2. Case 2
       Index:5shards, 复制一份数据
       4个服务,四台服务器
       A: 650万数据 31分50秒
       B: 1.2亿数据 4个小时

       3. Case 3
       Index: 20shards, 复制零份
       4个服务(四台服务器)
       多线程方式导入数据
       A: 1650万数据,8个线程, 20分钟,13750doc/s
       B: 1560万数据,16个线程,20分钟,13000doc/s
       C: 2700万数据,12个线程,40分钟,11250doc/s
       D: 1350万数据,8个线程,20分钟(32shards, 复制零份), 11250doc/s
       多线程写入对增加索引速度有很大帮助,线程开8个以上时效率变化不明显,shard的增加对效率也几乎没有影响


       新的服务器测试
       机器配置:6*2=12核,超线程24核,内存48G,  4台
       4个ES实例,每台服务器1个

       测试case
       Case 1
       数据:30658837
       多线程开启:4线程
       20 shards,无replias
       执行时间:14m42s, load值最高约8
       速度:34760.6doc/s

       Case 2
       数据:106511749
       多线程开启:6线程
       20 shards,无replias
       执行时间:43m18s, load值最高约20
       速度:40997.6doc/s
      
       结论:线程数4~6,对于效率提高有但不大,相比老服务器,新服务器性能要好很多,效率提高了近4倍,看来硬件对ES的性能影响较大。
分享到:
评论
1 楼 luyee2010 2017-07-24  
每个doc多大?多少个字段?

相关推荐

Global site tag (gtag.js) - Google Analytics