728x90
Problem
Tomcat을 구동했을 때, 엄청나게 오랜 시간을 소요하면서 서비스가 올라간다.
물론 이 시간은 정해진건 아니지만 현재 아래 로그를보면 60000ms 이상이 걸렸다.
Log Check
로그를 확인해보니 아래 로그를 발생시키며 오랜 구동 시간이 보여졌다.
org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [21,171] milliseconds.
[2023/11/16 12:40:28]16-Nov-2023 12:40:10.444 정보 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[2023/11/16 12:40:32]16-Nov-2023 12:40:32.213 경고 [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [21,171] milliseconds.
[2023/11/16 12:40:51]16-Nov-2023 12:40:51.935 정보 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [tomcat/webapps/Auth.war]
[2023/11/16 12:40:53]16-Nov-2023 12:40:53.539 정보 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
[2023/11/16 12:41:12]16-Nov-2023 12:41:12.753 정보 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [tomcat/webapps/Auth.war] has finished in [20,818] ms
[2023/11/16 12:41:12]16-Nov-2023 12:41:12.760 정보 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8000"]
[2023/11/16 12:41:12]16-Nov-2023 12:41:12.777 정보 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-3002"]
[2023/11/16 12:41:12]16-Nov-2023 12:41:12.782 정보 [main] org.apache.catalina.startup.Catalina.start Server startup in 64775 ms>)
Solution
아래와 같이 설정을 변경해주면 된다.
-Djava.security.egd=[file:/dev/./urandom](file:///dev/urandom)"
원인
원인은 간단하게 설명하면, java JVM에서 java.security.egd를 사용하는데 이는 java의 SecureRandom클래스를 초기화 하는 방식에 영향을 미친다.
난수를 생성하거나 파일을 어떻게 초기화 하는지에 대한 설정값이라고 한다.
종류는 2가지다.
- /dev/random
- /dev/urandom
위의 값은 모두 난수 발생기의 역활을 수행하는 특수파일이라고 보면 된다.
자세한건 하단 'References' 에 자세한 내용이 담겨져있다.
개발자라면 꼭 한번 읽어보는게..!
References
728x90
'Linux' 카테고리의 다른 글
SSL 인증서 에러(No subject alternative DNS name matching) (0) | 2024.02.22 |
---|---|
[테라폼] 리소스 구성 및 속성 참조 (0) | 2024.02.16 |
프로메테우스(Prometheus), 그라파나(Grafana)를 Docker Compose로 설치하기 (0) | 2024.02.08 |
NGINX SSL 인증서 등록 (2) | 2024.02.08 |
DNS Qusery 지연 및 도메인 등록기관 이전 (3) | 2023.11.23 |