大家好
最近项目导入Elasticsearch做Oracle数据库的负载分散。
Elasticsearch服务器2台,shard3 replica1,每台Elasticsearch服务器分配8G内存,
数据量size: 98.2Mi (199Mi) docs: 174,027 (348,087)
使用开源elasticsearch-jdbc进行Oracle到Elasticsearch的数据同期,5分钟执行1次
配置有Index1和Index2,一个执行状态,一个待机状态,每次数据同期进行轮换(执行状态的index变成待机,待机状态的变成执行)
每次数据同期是完全删除待机状态index,然后创建mapping,导入Oracle数据
问题:因为数据量很少,最先开始执行数据同期的时候大概1分钟左右就可以完成,
但是大概过了2周之后,创建index1时候的速度还是1分钟左右,但是创建index2时候的速度却变成了8分钟,
想请问大家有什么原因会导致创建这种问题么?怎么解决?
初学者,谢谢大家。
PS:elasticsearch-jdbc同期的时候,log里有以下warn信息
最近项目导入Elasticsearch做Oracle数据库的负载分散。
Elasticsearch服务器2台,shard3 replica1,每台Elasticsearch服务器分配8G内存,
数据量size: 98.2Mi (199Mi) docs: 174,027 (348,087)
使用开源elasticsearch-jdbc进行Oracle到Elasticsearch的数据同期,5分钟执行1次
配置有Index1和Index2,一个执行状态,一个待机状态,每次数据同期进行轮换(执行状态的index变成待机,待机状态的变成执行)
每次数据同期是完全删除待机状态index,然后创建mapping,导入Oracle数据
问题:因为数据量很少,最先开始执行数据同期的时候大概1分钟左右就可以完成,
但是大概过了2周之后,创建index1时候的速度还是1分钟左右,但是创建index2时候的速度却变成了8分钟,
想请问大家有什么原因会导致创建这种问题么?怎么解决?
初学者,谢谢大家。
PS:elasticsearch-jdbc同期的时候,log里有以下warn信息
WARN [pool-5-thread-1] org.xbib.elasticsearch.common.GcMonitor$GcMonitorThread.monitorGc(GcMonitor.java:135) - [gc][young][440][5] duration [1.4s], collections [1]/[2s], total [1.4s]/[1.9s], memory [618.9mb]->[124.2mb]/[1.9gb], all_pools {[young] [307.8mb]->[13.3mb]/[512.5mb]}{[survivor] [84.9mb]->[0b]/[85mb]}{[old] [226mb]->[117.6mb]/[1.3gb]}
0 个回复