我正在使用带有 elasticsearch 的休眠搜索作为我的索引管理器。目前,我的 jvm 设置为使用 1gb 内存,我不希望增加内存。
我有一个@Transactional类为索引的 .csv 文件总共插入了 200 万行@Entity。
尽管插入成功,但 lucene 索引器内存不足导致事务回滚。下面是我的休眠搜索配置和异常堆栈跟踪:
hibernate.search.default.indexmanager = elasticsearch
elastic= hibernate.search.default.elasticsearch.host =http://localhost:9200
hibernate.search.default.elasticsearch.index_schema_management_strategy = CREATE
#should be green for prod
hibernate.search.default.elasticsearch.required_index_status = yellow
hibernate.search.elasticsearch.scroll_backtracking_window_size=10000
hibernate.search.elasticsearch.scroll_fetch_size=1000
堆栈跟踪:
Exception in thread "Hibernate Search: Elasticsearch transport thread-3" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.HashMap$KeySet.iterator(HashMap.java:917)
at java.util.HashSet.iterator(HashSet.java:173)
at java.util.Collections$UnmodifiableCollection$1.<init>(Collections.java:1039)
at java.util.Collections$UnmodifiableCollection.iterator(Collections.java:1038)
at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:212)
at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:280)
at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)
at java.lang.Thread.run(Thread.java:748)
2018-08-15 11:37:53.184 ERROR 10624 --- [nsport thread-1] o.a.h.i.n.c.InternalHttpAsyncClient : I/O reactor terminated abnormally
org.apache.http.nio.reactor.IOReactorException: I/O dispatch worker terminated abnormally
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:356) ~[httpcore-nio-4.4.9.jar:4.4.9]
at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:194) ~[httpasyncclient-
是否有任何调整可以帮助缓解这种情况?
相关分类