Tomcat기동 시 JVM java security urandom 이슈
by hutswing
Tomcat기동 시 JVM java security urandom 이슈
현상
Tomcat기동 시 1시간 이상 지연이 발생함(Windows 2014/ Tomcat 8)
원인
Linux서버는 Thread Pool 할당, Connection Pool 사용등에 난수값을 사용하는데, 이때 난수값을 가져오는데 /dev/random 디바이스를 사용함
- Linux의 /dev 디렉토리는 시스템 디바이스 파일을 저장하는 디렉토리
- 예를들어 하드디스크는 /dev/sda, 씨디롬은 /dev/cdrom
/dev/random은 랜덤 비트의 풀이며 Entropy pool 이라고 부름
사용자 입력 신호(키보드, disk I/O, 마우스 클릭등)가 Entropy pool에 비트의 형태로 저장이 되고 난수를 생성할 때 Entropy pool에 default size만큼 bit가 충분하지 않다면 /dev/random은 블로킹 됨
해결방법
JAVA_OPTS에 옵션추가
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
Subscribe via RSS