Win2k3에서 서비스로 실행되는 Atlassian Fisheye/Crucible에 대해 "MaxPermSize"를 어떻게 설정합니까?

Win2k3에서 서비스로 실행되는 Atlassian Fisheye/Crucible에 대해 "MaxPermSize"를 어떻게 설정합니까?

저는 2주 동안 Win 2K3 R2에서 Atlassian Fisheye/Crucible을 서비스로 설정하려고 노력해 왔습니다. 다양한 "java.lang.OutOfMemoryError: PermGen space" 오류가 계속 발생하여 Fisheye가 충돌하고 서비스를 다시 시작해야 합니다.

나는 ~을 따랐다서비스 래퍼 내에서 MaxPermSize를 구성하려면 Atlassian 지원 사이트를 방문하세요. 그런데 Fisheye 관리 페이지와 디버그 로그에서 SysInfo를 확인해봐도 아무런 확인 내용이 보이지 않습니다. Java 힙 정보는 두 위치 모두에 있으므로 MaxPermSize 설정이 두 위치 모두에 표시될 것으로 예상합니다.

오류가 지속되고 Atlassian 지원이 거의 도움이 되지 않았습니다.

도움을 주셔서 감사합니다.

답변1

Wrapper.conf 파일에서 이를 설정할 수 있습니다. 제 구성 파일은 다음과 같습니다. 제게는 아주 잘 작동합니다. 저는 Windows Server 2008 R2에서 실행되는 Fisheye 2.6.3과 함께 이 파일을 사용하고 있습니다. 이 파일은 샘플/기본 구성과 대부분 동일하며 마지막에 설명할 몇 가지 중요한 추가 사항이 있습니다.

#************************************************ *******************
# 래퍼 속성
#************************************************ *******************
# 작업 디렉토리
Wrapper.working.dir=../../

# 자바 애플리케이션
Wrapper.java.command=C:\Program Files\Java\jdk1.6.0_25\bin\java.exe

# 자바 메인 클래스. 이 클래스는 WrapperListener 인터페이스를 구현해야 합니다.
# 또는 WrapperManager 클래스가 초기화되도록 보장합니다. 돕는 사람
#개의 수업이 이를 수행하기 위해 제공됩니다. 통합 섹션을 참조하세요.
자세한 내용은 문서 #입니다.
Wrapper.java.mainclass=com.cenqua.fisheye.FisheyeServiceWrapper

# Java 클래스 경로(wrapper.jar 포함) 클래스 경로 요소를 다음과 같이 추가합니다.
# 1부터 시작해야 함(log4j 구성이 먼저 로드되도록 lib FIRST를 추가)
Wrapper.java.classpath.1=./fisheyeboot.jar
Wrapper.java.classpath.2=래퍼/lib/*.jar

# Java 라이브러리 경로(Wrapper.DLL 또는 libwrapper.so의 위치)
Wrapper.java.library.path.1=래퍼/lib
Wrapper.java.library.path.2=lib/native/linux-i386
Wrapper.java.library.path.3=lib/native/osx-ppc
Wrapper.java.library.path.4=lib/native/solaris-sparc
Wrapper.java.library.path.5=lib/native/win32-x86


# 자바 추가 매개변수
Wrapper.java.additional.1=-서버
Wrapper.java.additional.2=-showversion
Wrapper.java.additional.3=-Djava.awt.headless=true

# JDK 1.5 jmx용 추가 매개변수
Wrapper.java.additional.4=-Dcom.sun.management.jmxremote
Wrapper.java.additional.5=-Dcom.sun.management.jmxremote.port=4242
Wrapper.java.additional.6=-Dcom.sun.management.jmxremote.authenticate=false
Wrapper.java.additional.7=-Dcom.sun.management.jmxremote.ssl=false
Wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
Wrapper.java.additional.9=-Dcom.sun.management.jmxremote.password.file=./wrapper/jmxremote.password
Wrapper.java.additional.10=-Dwrapper.mbean.name="wrapper:type=Java 서비스 래퍼 제어"
Wrapper.java.additional.11=-Dfisheye.inst="C:\Atlassian\fecru-2.6.3\bin\.."
Wrapper.java.additional.12=-XX:MaxPermSize=256m
Wrapper.java.additional.13=-Xrs
Wrapper.java.additional.14=-Dfile.encoding=UTF-8


# 초기 Java 힙 크기(MB)
Wrapper.java.initmemory=64

# 최대 Java 힙 크기(MB)
래퍼.java.maxmemory=1024

# 애플리케이션 매개변수. 1부터 시작하여 필요에 따라 매개변수를 추가하세요.
# 첫 번째 응용 프로그램 매개변수는 메인 클래스의 이름입니다.
# 메소드는 애플리케이션이 시작될 때 호출됩니다. 클래스
# 이름 뒤에는 기본으로 전달될 매개변수 수가 옵니다.
# 방법. 그런 다음 실제 매개변수가 옵니다.

Wrapper.app.parameter.1=com.cenqua.fisheye.FishEyeCtl
래퍼.app.parameter.2=1
Wrapper.app.parameter.3=시작

# 시작 매개변수 다음에는 메인 클래스의 이름이 옵니다.
# 애플리케이션을 중지하기 위해 메소드가 호출됩니다. 중지 클래스 이름
# 다음에는 래퍼가 다음을 수행해야 하는지 여부를 제어하는 ​​플래그가 옵니다.
# JVM을 종료하기 전에 데몬이 아닌 모든 스레드가 완료될 때까지 기다립니다.
# 플래그 다음에는 전달될 매개변수의 개수가 옵니다.
# 클래스의 메인 메소드를 중지합니다. 마지막으로 실제 매개변수가 나옵니다.
Wrapper.app.parameter.4=com.cenqua.fisheye.FishEyeCtl
Wrapper.app.parameter.5=true
래퍼.app.parameter.6=1
Wrapper.app.parameter.7=중지

#************************************************ *******************
# 래퍼 로깅 속성
#************************************************ *******************
# 콘솔 출력 형식. (형식은 문서 참조)
Wrapper.console.format=M

# 콘솔 출력을 위한 로그 레벨. (로그 수준은 문서 참조)
Wrapper.console.loglevel=정보

# 래퍼 출력 로깅에 사용할 로그 파일입니다.
래퍼.로그파일=var/log/wrapper.log

# 로그 파일의 출력 형식입니다. (형식은 문서 참조)
Wrapper.logfile.format=LPTM

# 로그 파일 출력을 위한 로그 수준입니다. (로그 수준은 문서 참조)
래퍼.logfile.loglevel=정보

# 로그 파일이 이전까지 증가할 수 있는 최대 크기
# 로그가 롤링됩니다. 크기는 바이트 단위로 지정됩니다. 기본값
# 0, 로그 롤링을 비활성화합니다. 'k'(kb)로 축약할 수 있습니다.
# 'm'(mb) 접미사. 예: 10m = 10MB.
래퍼.logfile.maxsize=50m

# 이전에 허용될 최대 롤링 로그 파일 수
#개의 파일이 삭제되었습니다. 기본값 0은 제한이 없음을 의미합니다.
래퍼.logfile.maxfiles=10

# sys/event 로그 출력을 위한 로그 수준. (로그 수준은 문서 참조)
래퍼.syslog.loglevel=NONE

#************************************************ *******************
# 래퍼 Windows 속성
#************************************************ *******************
# 콘솔로 실행할 때 사용할 제목
Wrapper.console.title=피쉬아이

#************************************************ *******************
# 래퍼 Windows NT/2000/XP 서비스 속성
#************************************************ *******************
# 경고 - 애플리케이션이 실행될 때 이러한 속성을 수정하지 마십시오.
# 이 구성 파일을 사용하여 서비스로 설치되었습니다.
# 이 섹션을 수정하기 전에 서비스를 제거하십시오. 그만큼
# 서비스를 다시 설치할 수 있습니다.

# 서비스 이름
Wrapper.ntservice.name=피쉬아이

# 서비스의 표시 이름
Wrapper.ntservice.displayname=피쉬아이

# 서비스 설명
Wrapper.ntservice.description=피쉬아이

# 서비스 종속성. 1부터 필요에 따라 종속성을 추가합니다.
래퍼.ntservice.dependent.1=

# 서비스가 설치되는 모드입니다. AUTO_START 또는 DEMAND_START
래퍼.ntservice.starttype=AUTO_START

# 서비스가 데스크톱과 상호 작용할 수 있도록 허용합니다.
래퍼.ntservice.interactive=false

주목할만한 대사

Wrapper.java.command=C:\Program Files\Java\jdk1.6.0_25\bin\java.exe

JDK '핫스팟' 서버 실행 파일의 전체 경로입니다. JRE뿐만 아니라 전체 JDK를 다운로드하십시오.

Wrapper.java.additional.11=-Dfisheye.inst="C:\Atlassian\fecru-2.6.3\bin.."
Wrapper.java.additional.12=-XX:MaxPermSize=256m
Wrapper.java.additional.13 =-Xrs
Wrapper.java.additional.14=-Dfile.encoding=UTF-8

위의 내용 중 어느 것도 Atlassian 문서에 나와 있지 않으며, 시행착오를 거쳐 시간이 지남에 따라 추가했습니다. FeCru가 서비스 래퍼에서 처음 시작되면 메모리 부족 오류로 인해 중지될 수 있으며 'MaxPermSize' 줄이 이를 수정합니다.

또한 위와 같이 FISHEYE_INST를 지정해야 한다는 사실도 발견했습니다. 경로가 /..끝에 로 지정되는 이유를 모르겠습니다 . 제가 찾은 예에서는 그랬습니다. 의심의 여지없이 쿠키 리눅스 의식이 있습니다. 다른 줄은 무엇을 위한 것인지 기억이 나지 않지만 어떤 이유로든 추가했고 그 이유를 문서화하지 않았습니다. 그 누구도 완벽하지 않아 ;-)

래퍼.java.initmemory=64 래퍼.java.maxmemory=1024

힙 메모리 할당이 기본값보다 늘어났습니다. 상당히 많은 저장소를 색인화하고 추가 리소스를 감당할 수 있습니다. 기본적으로 더 작은 할당을 사용하지 않아도 됩니다.

관련 정보