最近有点空,又看了看之前写的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的性能影响较大。
分享到:
相关推荐
Linux环境下使用sqlplus工具将oracle中的数据导入到elasticsearch中。只需要在es_bulk_tool.properties配置sql即可实现数据的批量导入。在elasticsearch6中测试通过。shell脚本需要使用sqlplus。
可用于Elasticsearch学习使用的测试数据。数据格式为xml,需要通过logstash导入Elasticsearch。
kettle etl工具中,实现批量导入到 elasticsearch中的插件
#elasticsearch-fileimport 使用ES传输协议(不是HTTP / REST)将JSON文件直接作为文档导入到Elasticsearch中。 导入是通过批量请求完成的。 ##先决条件Java 8 经过Elasticsearch 1.6测试(也应与早期版本一起使用...
elasticsearch_loader 主要特点 批量上传CSV(实际上是任何* SV)文件到Elasticsearch 批量上传JSON文件/ JSON行到Elasticsearch 将镶木地板文件批量上传到Elasticsearch 预定义自定义映射 上传前删除索引 使用...
ElasticSearch 5.4 的测试java工程 依赖包很全 有配置好的log4j 导入就能测
为了测试ES的复杂检索和bulk、mget等操作而制造的测试数据。数据为华为、苹果等品牌的手机的参数。
Elasticsearch测试数据,3160条商品数据 数据导入命令: curl -XPOST 'localhost:9200/pditems/_bulk' -H 'Content-Type:application/json' --data-binary @pditems.json
使用ES传输协议(不是HTTP / REST)将JSON文件直接作为文档导入到Elasticsearch中。 导入是通过批量请求完成的。 ##先决条件 Java 8 经过Elasticsearch 1.6测试(也应与早期版本一起使用) ##用法 mvn ...
下载后可直接Maven导入项目运行,包含ES的连接代码以及数据插入和查询功能
命令行脚本,用于将数据从ElasticSearch导入/导出到其他各种存储系统。 特征: 基于Node.js的命令行工具 导出到另一个ElasticSearch实例,压缩的平面文件,MySQL,Mongo DB等。 在目标上重新创建映射和设置 可以...
此工具支持从es导数据出来为txt文件,然后将此txt数据文件导进另外一个es环境里,在es2.3.1环境里测试验证可以正常导出导入,其它版本的要是有问题,下载对应的版本的esjar包就行; 使用方法:下载包,解压,将此...
弹性模拟用于测试目的的Python Elasticsearch Mock安装pip install ElasticMock用法要使用ElasticMock,请使用@elasticmock装饰器装饰您的测试方法: from unittest import TestCasefrom elasticmock import ...
也希望本文对使用 ElasticSearch 和 IK分词插件的开发者有所帮助。希望能少走点弯路。 本文包括前言、IK分词介绍、分词效果对比、自定义词典使用、索引设置和字段设置(Python 创建索引并导入数据)、查询测试...
猎犬 Elasticsearch客户端并查询Haskell的DSL 为什么? 搜索不必很困难。 让狗去做。 背书 “猎犬使Elasticsearch几乎可以忍受!... 请参阅我们的以获取我们要测试的Elasticsearch版本的列表。 稳定 猎犬在生
从v1.0开始,dejavu是唯一支持通过JSON和CSV文件导入数据以及从GUI定义字段映射的Elasticsearch Web UI。 从v1.5开始,我们支持创建自定义标头的功能,因此您可以轻松地传递不同的身份验证标头,通过Elasticsearch...
集成测试期望有一个Elasticsearch实例在本地运行。 您可以运行以下命令以在本地启动容器: docker-compose up 从Maven运行测试时,将在集成测试阶段自动启动Docker安装。 要跳过单元测试,请使用-...
es模块遍历从某些ES模块入口点收集所有导入的文件, 您还可以自定义resolver和read功能,以遍历来自静态服务器的导入图npm install es-module-traversal基准测试使用yarn test:bench命令运行基准yarn test:bench 它...
xcel服务器8.4企业版3月14日后注册文件导入方法...7、关于8.4版进行时间测试时,按天递增测试,运行测试到第8天或9天就出现服务器停止的异常或其他版本出现服务器停止的异常解决办法:重新导入授权文件就可以正常使用。
【ES从入门到实战】八、全文检索-ElasticSearch-入门-删除数据&bulk批量操作导入样本测试数据的测试使用数据