tomcat 내 SecureRandom Error, [SHA1PRNG]

2023. 11. 23. 13:17·Linux
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가지다.

  1. /dev/random
  2. /dev/urandom

위의 값은 모두 난수 발생기의 역활을 수행하는 특수파일이라고 보면 된다.
자세한건 하단 'References' 에 자세한 내용이 담겨져있다.
개발자라면 꼭 한번 읽어보는게..!

References

  • https://www.mrlatte.net/code/2022/06/01/jvm-random-number-delay
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
'Linux' 카테고리의 다른 글
  • [테라폼] 리소스 구성 및 속성 참조
  • 프로메테우스(Prometheus), 그라파나(Grafana)를 Docker Compose로 설치하기
  • NGINX SSL 인증서 등록
  • DNS Qusery 지연 및 도메인 등록기관 이전
정주원
정주원
개인블로그
  • 정주원
    Joon.eng
    정주원
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • Linux (41)
      • Windows (0)
      • Network (4)
      • Database (0)
      • Cloud (23)
      • Docker (3)
      • Ansible (2)
      • Etc (4)
  • 블로그 메뉴

    • 링크

      • GITLAB(woni)
    • 공지사항

    • 인기 글

    • hELLO· Designed By정상우.v4.10.0
    정주원
    tomcat 내 SecureRandom Error, [SHA1PRNG]
    상단으로

    티스토리툴바