Openfire Java 메모리 부족 오류 - 해결책이 있습니까?

Openfire Java 메모리 부족 오류 - 해결책이 있습니까?

메모리 부족으로 인해 가끔씩 충돌이 발생하는 큰 문제가 있습니다. Java 로그에는 다음과 같은 오류 로그가 있습니다. 그러나 문제는

  1. Openfire는 32비트인데 64비트로는 실행할 수 없습니다.
  2. 내가 오픈파이어에 제공할 수 있는 유일한 최대 메모리는 32비트이기 때문에 4GB입니다.
  3. 내 시스템은 32GB 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비트 모드로 실행되며 보유한 만큼의 RAM을 제공할 수 있습니다. 64비트 jvm/jre를 설치해 보세요.

관련 정보