Openfire Java 記憶體不足錯誤 - 有解決方案嗎?

Openfire Java 記憶體不足錯誤 - 有解決方案嗎?

由於記憶體不足,我經常遇到 openfire 崩潰的巨大問題。在java日誌中我有以下錯誤日誌。然而問題是

  1. Openfire 是 32 位元的,我無法將其作為 64 位元運行。
  2. 因為我可以給 openfire 的唯一 32 位元最大記憶體是 4GB。
  3. 我的系統非常強大,有 32 GB RAM,所以我不能再增加了
  4. 最多只有 100 個用戶在使用 openfire,但似乎仍然無法處理它
  5. 我每 5 分鐘執行一次 cron 作業來監視此服務並時不時地重新啟動

關於如何優化開火記憶體使用並阻止其崩潰的任何解決方案?

錯誤日誌如下

#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 140 bytes for CHeapObj-new
# Possible reasons:
#   The system is out of physical RAM or swap space
#   In 32 bit mode, the process size limit was hit
# Possible solutions:
#   Reduce memory load on the system
#   Increase physical memory or swap space
#   Check if swap backing store is full
#   Use 64 bit Java on a 64 bit OS
#   Decrease Java heap size (-Xmx/-Xms)
#   Decrease number of Java threads
#   Decrease Java thread stack sizes (-Xss)
#   Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
#  Out of Memory Error (allocation.inline.hpp:44), pid=31239, tid=2735213424
#
# JRE version: 6.0_41-b02
# Java VM: Java HotSpot(TM) Server VM (20.14-b01 mixed mode linux-x86 )

---------------  T H R E A D  ---------------

Current thread (0xad2c7000):  JavaThread "Jetty-QTP-AdminConsole-16012" [_thread_in_vm, id=21077, stack(0xa3030000,0xa3081000)]

Stack: [0xa3030000,0xa3081000],  sp=0xa307f3d4,  free space=316k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x727990]

答案1

Openfire 是用 java 寫的,不是 32 位元特定的。如果您使用 64 位元 jvm,它將以 64 位元模式運行,並且您可以為其提供盡可能多的記憶體。嘗試安裝 64 位元 jvm/jre

相關內容