2009-04-27 4 views
1

주말에 오류없이 잠시 동안 실행 된 Tomcat 6 인스턴스에 SSL 보안을 추가했습니다. 오늘 아침, 컴퓨터에서 세션 수가 증가한 후 Tomcat은 사용자에게 500 개의 오류를 던지기 시작했습니다. 로그를 확인하고 OutOfMemory의 인스턴스를 발견하고, Google Guice와 관련된 수십 개의 오류가 새 스레드를 시작하려고 시도합니다. SSL을 추가하면 더 많은 스레드가 생성되고 더 많은 메모리가 사용되거나 일부 상황에서만 이미지를 생성 할 수 있습니다. 나는 여분의 자원이 어디에 또는 어떻게 사용되고 있는지에 대해 몹시 확신하지 못한다.Tomcat 6에 SSL을 추가 한 경험은 무엇입니까?

나는 Tomcat에서 SSL을 사용하는 경험이있는 사람들이 실마리를 찾기 위해 어떤 방향으로 나를 가리킬 수 있기를 바랬다. 지금은 문제가 어디 있는지 알 수 없습니다. 여기에 우리의 설치 및 구성에 대한 통계의 몇 :

-XX : 위해 ThreadStackSize = 512
초기 메모리 풀 (128MB)
최대 메모리 풀 : 1,024메가바이트
스레드 스택 크기 : 5백12킬로바이트

나 ' 성공을 향한 길을 적어도 찾으려고 시도하기 위해 다양한 방법으로 이들을 조정했습니다. 지금까지 서버가 다시 시작된 후 약 5 분이 지나면 성능이 저하되기 시작합니다. 어떤 방향이라면 크게 감사하겠습니다.

답변

0

Tomcat6에 SSL 인증서/https를 추가해도 이러한 문제가 발생하지 않습니다.

OutOfMemoryError의 출처는 어디입니까? 너무 많은 메모리를 차지하고있는 것을보기 위해 프로파일 러를 부착 할 수 있습니까?

내가 당신이 여기에서 찾고있는 것은이 명 관련이없는 변경이라고 생각 : 당신은 SSL을 활성화

  1. /HTTPS
  2. 세션의 전화 번호가 메모리 문제를 노출까지왔다.
+0

나는 그렇게 생각하지 않을 것이다. 그러나 모두 금요일에 복숭아 색이었다. 우리는 동일한 세션 수, 동일한 코드 등을 가졌습니다. 시스템에서 일어난 유일한 변화는 SSL 추가뿐이었습니다. –

+0

SSL을 제거하면 문제가 해결된다고 명시해야합니다. SSL이 비활성화되면 모든 것이 잘 실행됩니다. –

1

브라우저는 http 콘텐츠보다 훨씬 덜 공격적인 https 콘텐츠를 캐시합니다. 따라서 최종 사용자가 현재 HTTPS를 통해 서비스에 액세스하고 있지만 이전에는 HTTP를 통해 서비스를 사용하고있는 경우 동일한 세션 수로 더 많은 요청을 처리하게됩니다.

나는 매트 B의 제안을 위와 같이 생각하지 않을 것이다. 프로파일을 사용하여 힙이 사용되는 위치를 찾습니다. 시작 JVM 인수에 -verbose:gc -Xloggc:/path/to/where/you/want/gc.log을 추가하고 결과 gc.log를 사용하여 힙 크기의 점프를 특정 요청 순서와 상관시킬 수 있는지 확인하십시오. jmap -dump:format=b,file=/path/to/dump {tomcat PID}을 사용하여 힙 덤프를 생성하십시오. 바람둥이를 시작한 직후에 하나를 가져 가면 죽을 때가되면 jhat를 사용하여 차이점을 표시 할 수 있습니다.

+0

실제로, 나는 그렇게 긴 샷이 아닌 것 같아요. 그러나 어떤 경우 든, 조치의 과정은 원인을 추측 할 수없고 진단 및 프로파일 링을 추가 할 수없는 오래된 OutOfMemoyError와 같이 처리하는 것입니다. –