1. nofile (max number of open files)
- 지원되는 열린 파일 수
- 설정값이 너무 낮은 경우 -> 파일 열기 오류 발생, 메모리 할당 장애, 연결 설정 오류 발생
기본값: 1024
권장값: 8192
ulimit -n 8192
ulimit -a
2. nproc (max user processes)
- user에서 생성할 수 있는 최대 process 개수 (process 개수 + thread 개수)
- 적게 설정되는 경우 -> native thread 생성 불가 에러 발생
기본값: 1024
권장값: 8192 이상
ulimit -u 8192
ulimit -a
3. 연결 백로그
- 수신 연결 요청의 높은 비율이 연결 실패가 될 경우
echo 3000 > /proc/sys/net/core/netdev_max_backlog
echo 3000 > /proc/sys/net/core/somaxconn
4. timeout_timewait
- TCP/IP가 닫힌 연결을 해제하고 자원을 다시 사용하기 전에 경과해야 하는 시간
- timewait : 닫힘과 해제 사이의 간격
- 장점
- 새 연결을 설정하는 것보다 클라이언트와 서버로의 연결을 다시 여는 비용이 더 저렴
- 닫힌 연결을 더 빨리 해제할 수 있어서 새 연결을 위해 더 많은 자원을 제공 가능
기본값: 75초
권장값: 15초
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
5. TCP_KEEPALIVE_INTERVAL
- 활성화 상태 지속 응답이 수신되지 않을 경우 TCP/IP에서 활성화 상태 지속 전송을 반복하는 빈도 결정
- 손실되었는지 확인하는 데 소비하는 시간을 줄여야 할 경우 값 줄이기
- tcp_keepalive_probes : 연속적인 활성화 상태 지속 전송 수가 값을 초과할 경우 연결 중단
- 응답 시간이 길 경우 -> probes값을 늘려 오버헤드 줄이기
기본값: 75초
권장값: 15초
echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl
6. TCP_KEEPALIVE_PROBES
- 수신확인 되지 않은 활성화 상태 지속 메시지를 재전송 하는 횟수 결정
- 네트워크 품질이 낮을 경우 -> 값을 늘려 효과적인 통신 유지
기본값: 9초
권장값: 5초
echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes
7. TCP_KEEPALIVE_TIME
- TCP/IP가 대기 연결이 계속 원래 상태를 유지하는지 확인을 시도하는 빈도 제어
- 손실된 상대에 대해 민감도 -> 값을 줄이기
- 오버헤드를 줄이는 경우 -> 비활성 상태 유지하는 연결은 공통 ,손실된 상대가 공통이 아닐 경우
기본값: 7200초
권장값: 1200초
echo 10 > /proc/sys/net/ipv4/tcp_keepalive_time
8. config 파일 수정을 통한 영구 적용
/etc/security/limits.conf
# nofile tunning - max number of open files
* soft nofile 65536
* hard nofile 65536
# nproc tunning - max user processes
[user명] hard nproc 65536
[user명] soft nproc 65536
/etc/sysctl.conf
#tcp tunning
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backing = 3000
net.core.somaxconn = 3000
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_time = 1200
적용: sysctl -p
확인: sysctl -a