aws에서 tomcat 서버 시작 시간이 너무 느리다면...

2017-01-13 12:36

어느 순간부터인지 모르겠다. 처음에는 바로 바로 시작하던 tomcat 서버가 어느 순간부터 갑자기 느려졌다. 도저히 원인을 찾을 수 없었는데 이러 저리 찾다가 해결방법을 찾았다.

우분투의 경우

sudo apt-get install haveged

위와 같이 haveged를 설치한 후 시작하니 정말 빨라졌다. 그 동안 매번 시작하고 테스트할 때마다 정말 짜증났는데...

해결 방법은 Fresh Tomcat takes loong time to start up 에서 찾았다.

정확한 원인은 entropy pool이라는 놈과 관련이 있는 듯 한데 운영체제에 대한 지식이 깊지 않아 entropy pool이 무엇을 하는 놈인지 잘 모르겠다.

2개의 의견 from SLiPP

2017-01-18 22:29

얼마 전 강의 중에 다른 개발자의 도움을 받아 다른 해결 방법을 찾았네요. 아마도 이 방법이 모든 방법의 해결책으로 보여집니다.

tomcat 구동 시 /dev/random 블로킹 이슈 문서 참고해 보면 원인, 해결책이 나오네요.

해결책만 공유하면 다음과 같아요. tomcat 서버 시작할 때 다음과 같이 설정 추가하면 됩니다.

JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"

위 설정도 entropy pool과 관련한 설정이군요.

2019-06-25 11:40

또하나의 방법은 java.security 파일에 아래와 같이 이를 명시하는 것입니다. (회사에서는 이 방법을 주로 쓰고 있어요)

securerandom.source=file:/dev/./urandom

java.security 파일의 위치는

  • JDK 8 이하 : {JAVA_HOME}/jre/lib/security/java.security
  • JDK 9 이상 : {JAVA_HOME}/conf/security/java.security

Tomcat최신 버전에서는 해당 옵션이 없어도 된다는데 아직 정확히 어느 버전부터인지는 찾지는 못했어요.

( https://spring.io/guides/gs/spring-boot-docker/ 에서

To reduce Tomcat startup time we added a system property pointing to "/dev/urandom" as a source of entropy. This is not necessary with more recent versions of Spring Boot, if you use the "standard" version of Tomcat (or any other web server). )

의견 추가하기

연관태그

← 목록으로