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ù)可以通過在啟動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捆毫。
對于默認(rèn)的WAL設(shè)置,這個(gè)值等于256MB冲甘。
解決方法:-XX:MaxDirectMemorySize=2G
另外留意一下ignite在負(fù)載高的情況下的tcp鏈接數(shù)冻璃,以防客戶端頻繁創(chuàng)建鏈接且不關(guān)閉。
netstat -na|grep ESTABLISHED|wc -l