2014-09-22 8 views
3

로드 중 Liferay 6.1.20-ee-ga2로 실행되는 Tomcat 7.0.27의 작동이 중지됩니다. jstack을 실행하면 아무것도하지 않고 ajp 자원을 차단하는 것처럼 보이는이 스레드가 많이 생깁니다. CPU의 부하가 높지 않습니다 (55 % 미만).Tomcat 작동 중지 : 사용할 수있는 ajp가 없습니다.

"AJP-바이오-8009-간부-8930"데몬 프리 오 = 10 TID = 0x00007f8a5c12f800 꾸벅 꾸벅 = 0xcc26 실행 가능한 [0x0000000000000000] 하는 java.lang.Thread.State :

Locked ownable synchronizers: 
     - None 

"ajp-bio-8009-exec-8929" daemon prio=10 tid=0x00007f8a5c12e800 nid=0xcc25 runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

    Locked ownable synchronizers: 
     - None 

"ajp-bio-8009-exec-8928" daemon prio=10 tid=0x00007f8a5c0eb800 nid=0xcc20 runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

    Locked ownable synchronizers: 
     - None 

"ajp-bio-8009-exec-8927" daemon prio=10 tid=0x00007f8a5c042800 nid=0xcc1f runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

    Locked ownable synchronizers: 
     - None 

누군가가 나를 설명 할 수

RUNNABLE 이 스레드는 무엇을하고 있습니까? 그들이이 주에 있다는 것이 정상입니까? 감사합니다.

답변

0

스레드 때문에 메모리 부족의 0x0000000000000000에 갇혀 것으로 보인다. 0x0000000000000000에 할당이 중지되도록 왼쪽 공간이 없습니다.

"ajp-bio-8009-exec-8929" daemon prio=10 tid=0x00007f8a5c12e800 nid=0xcc25 runnable [0x0000000000000000] 
    java.lang.Thread.State: RUNNABLE 

    Locked ownable synchronizers: 
     - None 
1

웹 서버 (apache http)와 tomcat 서버 간의 통신에는 AJP가 사용됩니다. AJP는 일반 http보다 약간 더 많은 자원을 절약합니다. AJP 연결 풀링에 대한

Client <--http--> Webserver <--ajp--> Tomcat

사용됩니다. 최대 ajp 스레드에 대한 Tomcats 기본값은 입니다. 따라서 200 개의 동시 요청을 처리 할 수 ​​있습니다. 고부하 중 일부 작업 (RUNNABLE)을 기다리는 최대 200 개의 ajp 스레드가 있어야합니다.

+0

구성이 700 ajp 스레드입니다. 어쨌든 서버가 응답을 멈 추면 많은 무료 ajp 스레드가 있습니다. 그러나 서버는 새로운 요청을 제공하지 않습니다. – agiannetti

0

확인. 서버가 응답을 멈 추면 몇 가지 근본 원인이있을 수 있습니다.

  1. 웹 서버는 700 개의 스레드/연결을 허용하지 않습니다.
  2. 응용 프로그램이 어떻게 든 스레드를 해제하지 않습니다.

서버가 응답하지 않는 경우 다른 커넥터 (http 등)가 계속 작동합니까 아니면 전체 시스템이 응답하지 않습니까?

maxThread 값을 높이면 응답 성이 향상됩니까?

감사 마르셀

+0

내 답변은 "누군가이 스레드가 무엇을하고 있는지 설명 할 수 있습니까? 그들은이 상태에있는 것이 정상입니까?"웹 서버는 바람둥이이며 700 개의 스레드/연결을 허용합니다. 내 응용 프로그램이 스레드를 relasing하지 않는지는 모르지만 일부 스레드가 왜 이상한 statut에 있는지 알고 싶습니다. – agiannetti