2014-02-13 1 views
0

나는 이것이 좋은 해결책이 아니라는 것을 알고 있지만 tomcat에서 실행되는 타사 제품에 문제가있어 종종 힙 공간 오류가 발생합니다. 특정 프로세스 (PID 있지만 프로세스 이름을 사용하지 않는)에 의해 소비되는 메모리를 모니터링하는 방법이 있는지 알고 싶습니다. 제한을 초과하는 경우 Tomcat 서비스를 다시 시작합니다.프로세스가 특정 메모리 크기에 도달했을 때 Linux에서 서비스 재시작

더 많은 메모리를 할당하려고 시도했지만 프로세스 속도가 느려집니다.

덕분에 실제로 메모리를 사용하는 것이 올 때 ps는 본질적 unprecise 것을 기억

+0

OOM이 일부 정규식 인 경우 예를 들어 T-x 시간 단위마다 다시 시작하는 것이 좋습니다. 'cron'. –

+0

우리는 그것을 시도했지만 패턴이 없으며 수백 명의 사용자가 있으며 8 시간 내에 임의로 연결합니다. –

+0

[Java Service Wrapper] (http://wrapper.tanukisoftware.com/doc/english/download.jsp)를 통해 Tomcat 인스턴스를 실행할 수 있습니다. OOM 예외를 감지하고 래핑 된 서비스를 자동으로 다시 시작합니다. – Ralf

답변

1

당신은 아마 psjps의 조합을 사용하여 "충분히 좋은"측정을 얻을 수 있습니다 (이 할당 메모리를 보여줍니다) 내가 "프로세스 이름"에 의해 있으리라 믿고있어

ps u -p `jps -v | grep "<yourname>" | awk '{print $1}'` 

당신은 특정 java 인스턴스를 식별 무언가를 의미한다. VSZ (또는 가상 크기) 당신이 필요로하는 번호입니다

USER  PID %CPU %MEM VSZ RSS TTY  STAT START TIME COMMAND 
root  6816 0.6 7.1 1454376 281436 pts/2 Sl+ Feb03 102:20 /usr/bin/java -Xmx1024M -Xms512M -jar /opt/minecraft/minecraft_serv 

같은 것을 제공 할 것입니다.

건배,

관련 문제