java.lang.OutOfMemoryError: Direct buffer memory

ignite 服务重启,查看错误日志:

[14:29:56,533][SEVERE][grid-nio-worker-client-listener-3-#37][ClientListenerProcessor] Caught unhandled exception in NIO worker thread (restart the node).                                
java.lang.OutOfMemoryError: Direct buffer memory

直接内存是一种在堆外分配的内存,它不受Java堆大小的限制。
MaxDirectMemorySize参数可以通过在启动JVM时使用以下命令行选项进行设置:
-XX:MaxDirectMemorySize=<size>

#查看DirectMemorySize
cat /proc/1/maps | grep -v "\\.so" | grep -v "\\.jar" | grep -v "\\.class" | grep -v "\\.properties" | grep -v "\\.conf" | grep -v "\\.xml" | awk '{sum += $3 - $2} END {print sum / 1024 / 1024 " MB"}'

查看ignite相关文档:
如果您使用Ignite本机持久性,我们建议您将MaxDirectMemorySize JVM参数设置为walSegmentSize * 4。
对于默认的WAL设置,这个值等于256MB。

解决方法:-XX:MaxDirectMemorySize=2G

另外留意一下ignite在负载高的情况下的tcp链接数,以防客户端频繁创建链接且不关闭。
netstat -na|grep ESTABLISHED|wc -l

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容