아무거나

[Linux] Soft Limit, Hard Limit 본문

Infra/Linux & Unix

[Linux] Soft Limit, Hard Limit

전봉근 2022. 7. 29. 13:32
반응형
  • Soft Limit, Hard Limit
    • 각 계정 마다 하나의 프로세스가 가질 수 있는 file descriptor에 제한이 있다.
    • Soft limit 는 새로운 프로그램이 생성되면 디폴트로 적용되는 제한 값
    • Hard limit 는 Soft limit 부터 늘릴 수 있는 최대 값 (root만 조정 가능)
    • aws ec2 기준으로는 인스턴스 타입에 따라 limit가 조정된다. 즉, 서버 사양에 따라 limit를 증가시킬 수 있다.
    • Java는 hard 옵션까지 파일오픈이되고 Python에서는 soft옵션까지만 file이 오픈되는 이유
      • openjdk에서는 -XX:+MaxFDLimit 옵션이 true 인 경우 setrlimit 으로 limit를 증가시키므로 hard 옵션까지 파일이 오픈된다.
        • 설치된 java의 MaxFDLimit 확인 방법
            $ java -XX:+PrintFlagsFinal -version | grep MaxFDLimit
          
      • Java에서 동시에 생성 가능한 쓰레드 수는 max user processes를 따라간다.
      • Java에서 소켓 통신(HTTP API, JDBC 커넥션 등)은 open file 옵션을 따라간다.
        • 단, JDK 내부 코드상에서 hard limit 값이 soft limit에 update된다.
반응형
Comments