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의 MaxFDLimit 확인 방법
- Java에서 동시에 생성 가능한 쓰레드 수는
max user processes
를 따라간다. - Java에서 소켓 통신(HTTP API, JDBC 커넥션 등)은
open file
옵션을 따라간다.- 단, JDK 내부 코드상에서 hard limit 값이 soft limit에 update된다.
반응형