ElasticSearch导入测试

本文通过测试不同服务器配置下ES导入性能的变化,分析了服务器硬件对ES性能的影响,包括多线程写入对增加索引速度的帮助及硬件升级带来的显著提升。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

[b]测试用例[/b]

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

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

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


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

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

[b]Case 2[/b]
数据:106511749
多线程开启:6线程
20 shards,无replias
执行时间:43m18s, load值最高约20
速度:40997.6doc/s

[b]结论:[/b]线程数4~6,对于效率提高有但不大,相比老服务器,新服务器性能要好很多,效率提高了近4倍,看来硬件对ES的性能影响较大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值