2012-07-01 3 views
5

안녕하세요. 내 CentOS 6 (64 비트) 서버에서 Java VM에 대해 정말 당황 스럽습니다. 쿼드 코어 CPU (하이퍼 스레딩), 16GB RAM 및 2TB 하드 드라이브 공간 (소프트웨어 RAID1)이있는 서버입니다. FAQ에 따르면 개발자가 사용하는 "일반적인 도구"에 대한 질문이 적절하기 때문에 여기에서 묻습니다. 희망을 갖고 누군가가 문제에 대해 밝힐 수 있기를 바랍니다.JVM은 CentOS 6에서 항상 100 % CPU 사용량을 초과합니다

서버에서 24 시간/일 Java 소프트웨어를 실행합니다. 오늘 (서버 로케일 자정 이후 자정 이후로 몇 시간이 걸렸습니다.이 달의 첫날이기 때문에 주목할만한 일입니다),이 소프트웨어에 연결 한 사용자가 갑자기 사용할 수 없게되었다는보고를 받았습니다. JVM이 중단되거나 다시 시작되지 않았습니다. 마지막 며칠 전에 다시 시작되었으며 그 이후 정상적으로 실행되었습니다 (CPU 사용량이 정상 5 % 이하인 경우).

이번에는 프로세스를 점검했을 때 서버에서 실행중인 다른 응용 프로그램과 씨름 할 수있는 모든 CPU 시간이 걸리거나 (100 % 이상보고 됨) 추신). 응용 프로그램을 중지하고 다시 시작하려고 시도했지만 실행되는 즉시 CPU 사용량이 즉시 100 % 이상으로 다시 증가합니다. 메모리 사용은 정상입니다. 다른 JVM 플래그를 사용해 보았습니다. 최신 버전의 소프트웨어를 다운로드하고 새로 설치하려고 시도했지만 도움이되지 않았습니다. 마지막으로 완전히 다른 Java 소프트웨어 조각을 다운로드하려고 시도했지만 서버에서 실행했을 때 동일한 문제가 발생했습니다.

소프트웨어를 다운로드하여 컴퓨터에서 실행하면 CPU 사용량이 정상적으로 나타납니다. 따라서 나는 서버에서 잘못되었다고 추측하고 있지만 그것이 어쩌면 될 수 있는지 상상할 수는 없다. 서버의 JVM은 표준 리포지토리 패키지 (사용자 정의가 전혀 필요 없음)에서 최신 버전입니다.

에 CentOS 릴리스/레드햇 릴리스에서
2.6.32-131.21.1.el6.x86_64 #1 SMP Tue Nov 22 19:48:09 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux 

/시스템 출시 :

CentOS release 6.2 (Final) 

무료 보고서 끝나면 uname -a에서

java version "1.6.0_24" 
OpenJDK Runtime Environment (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64) 
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) 

: 자바 -version에서

약 14.5GB의 여유 RAM. df는/home 파티션 (문제의 소프트웨어와 모든 파일이있는)에서 1.4tb의 사용 가능한 디스크 공간을보고합니다.

아이디어가 있으십니까? 더 많은 데이터가 필요한지 물어 보시고, 나에게 시도/확인 절차를 제안하십시오. 문제를 찾으면 JVM이 CentOS의 모든 CPU를 훔치는 데 어려움을 겪는 사람들이 몇 명 있었지만 그 중 누구도 내 문제와 일치하지 않는 것으로 나타났습니다.

+1

오늘 두 번째 도약이있었습니다. 이제 타이머가 설정되기 1 초 * 만료됩니다! 재부팅하십시오. –

+0

오. 나중에 답변으로 게시 할 수 있도록 작동하는지 알려 드리겠습니다. – Protected

+0

그건 완전히 효과가 있습니다. 감사. 나는 모든 고객들을위한 서비스를 방해하기 때문에 구체적인 이유없이 먼저 서버를 재부팅 할 수 없다. – Protected

답변

8

당신은 아마 커널 2.6.32-220.el6.x86_64 및 jdk1.7.0_04와 내가 CentOS6이 다음 명령

# service ntpd stop; date -s "`date`";service ntpd start; 

을 시도하려는, 높은 CPU 관찰하고 위의 명령에 의해 해결되었습니다. OS를 다시 시작할 필요가 없습니다.

이것은 리눅스 커널이 https://access.redhat.com/knowledge/solutions/154793 인 버그로 보입니다. 위의 픽스는 http://blog.wpkg.org/2012/07/01/java-leap-second-bug-30-june-1-july-2012-fix/

+0

이것은 또한 커널 2.6.32-220.17.1.el6.x86_64 # 1 SMP와 자바 "1.6.0_24"OpenJDK (IcedTea6 1.11.3) (rhel-1.48.1.11.3.el6_2-x86_64) (빌드 20.0-b12, 혼합 모드) – danio

0

에 있습니다.이 문제는 Fedora 14, Tomcat 6 및 OpenJDK 1.6에 있음을 확인할 수 있습니다. 신비의 해결책은 나를 위해 일했다.

UNAME -ar :

2.6.35.14-103.fc14.x86_64 #1 SMP Thu Oct 27 15:41:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux 

자바 -version은 :

java version "1.6.0_20" 
OpenJDK Runtime Environment (IcedTea6 1.9.10) (fedora-55.1.9.10.fc14-x86_64) 
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode) 
1

또한 RHEL 6, 톰캣 7, 썬/오라클 자바 7 & 자바 6에서 문제의 존재를 확인할 수 있습니다.

ntpd stop; date; ntpd start 명령이 처리되었습니다.

uname: 
2.6.32-220.2.1.el6.x86_64 #1 SMP Fri Dec 23 02:21:33 CST 2011 x86_64 x86_64 x86_64 GNU/Linux