java.lang.OutOfMemoryError: Direct buffer memory

ignite 服務(wù)重啟,查看錯(cuò)誤日志:

[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

直接內(nèi)存是一種在堆外分配的內(nèi)存,它不受Java堆大小的限制。
MaxDirectMemorySize參數(shù)可以通過(guò)在啟動(dòng)JVM時(shí)使用以下命令行選項(xiàng)進(jìn)行設(shè)置:
-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相關(guān)文檔:
如果您使用Ignite本機(jī)持久性,我們建議您將MaxDirectMemorySize JVM參數(shù)設(shè)置為walSegmentSize * 4。
對(duì)于默認(rèn)的WAL設(shè)置,這個(gè)值等于256MB。

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

另外留意一下ignite在負(fù)載高的情況下的tcp鏈接數(shù),以防客戶端頻繁創(chuàng)建鏈接且不關(guān)閉。
netstat -na|grep ESTABLISHED|wc -l

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容