커널 파라미터
vi /etc/security/limits.conf 해당내용 추가
jgshin hard nproc 65536
jgshin soft nproc 65536
jgshin hard nofile 65536
jgshin soft nofile 65536
=======================================================
TCP 파라미터
현재값 확인 커맨드
sysctl -a
현재값
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 1200
=======================================================
vi /etc/sysctl.conf에 아래내용 추가
/proc/sys/net/ipv4/tcp_fin_timeout=15
/proc/sys/net/ipv4/tcp_keepalive_intvl=15
/proc/sys/net/ipv4/tcp_keepalive_probes=5
/proc/sys/net/ipv4/tcp_keepalive_time=1200
안되면 아래 내용으로 추가
net.ipv4.tcp_fin_timeout=15
net.ipv4.tcp_keepalive_intvl=15
net.ipv4.tcp_keepalive_probes=5
net.ipv4.tcp_keepalive_time=1200
=======================================================
적용 커맨드
sysctl -w net.ipv4.tcp_fin_timeout=15
sysctl -w net.ipv4.tcp_keepalive_intvl=15
sysctl -w net.ipv4.tcp_keepalive_probes=5
sysctl -w net.ipv4.tcp_keepalive_time=1200
혹은 아래 커맨드
sysctl -p
======================================================
- nproc (Number of Processes)
- 한 사용자(tmax)가 생성할 수 있는 최대 프로세스 개수를 65,536개로 설정.
- 다중 프로세스를 사용하는 애플리케이션(웹 서버, DB, 대규모 프로세스 기반 서비스)에서 최대 동시 실행 프로세스 개수를 확장할 수 있음.
- 너무 낮으면 프로세스 생성이 제한되므로 서버 성능 저하 및 장애 발생 가능.
- 너무 높으면 리소스를 과도하게 사용할 수 있어 시스템 성능 저하 가능.
- nofile (Number of Open Files)
- 한 사용자가 최대 열 수 있는 파일 개수를 65,536개로 설정.
- 파일 핸들 개수를 제한하는 값이며, 웹 서버(Nginx, Apache), 데이터베이스(MySQL, PostgreSQL) 등의 파일 입출력이 많은 서비스에 필수적인 설정.
- 기본값이 낮으면 동시 접속 수가 많을 경우 파일 핸들 부족 오류 발생 가능.
======================================================
- net.ipv4.tcp_fin_timeout = 15
- FIN_WAIT_2 상태의 TCP 연결 유지 시간을 15초로 설정.
- 기본값(60초 이상)보다 낮추면 불필요한 연결을 빠르게 종료하여 네트워크 및 메모리 리소스 절약 가능.
- 단, 너무 짧으면 정상적인 세션 종료가 발생하기 전에 연결이 닫힐 위험이 있음.
- net.ipv4.tcp_keepalive_intvl = 15
- TCP Keepalive 패킷 전송 간격(초).
- 서버가 클라이언트와 오래된 연결을 유지할 때 Keepalive 패킷을 전송하는 간격을 15초로 설정.
- 짧으면 빠르게 연결 상태를 확인할 수 있어 세션 안정성 증가.
- 너무 짧으면 불필요한 Keepalive 트래픽 증가 가능.
- net.ipv4.tcp_keepalive_probes = 5
- TCP Keepalive 패킷을 몇 번 보내고 응답이 없으면 연결을 종료할지 결정하는 값.
- 기본값(9)보다 줄여서 5번으로 설정 → 더 빨리 비정상적인 연결을 감지하고 닫을 수 있음.
- 유지해야 할 연결이 너무 빨리 끊기는 문제가 발생할 수도 있음.
- net.ipv4.tcp_keepalive_time = 1200
- TCP 연결이 유지될 수 있는 최대 시간(초).
- 1200초(20분) 동안 연결이 유지되며, 이후 Keepalive 체크를 수행.
- 연결이 끊어졌는데도 세션이 유지되는 것을 방지하여 불필요한 네트워크 리소스 낭비를 줄일 수 있음.
항목변경 전 (기본값)변경 후예상 효과
nproc | 기본값 (10,000~50,000) | 65,536 | 프로세스 개수 제한 증가 → 다중 프로세스 실행 가능 |
nofile | 기본값 (1024~4096) | 65,536 | 동시 접속 증가 시 안정적인 파일 핸들링 가능 |
tcp_fin_timeout | 60초 이상 | 15초 | 불필요한 TCP 연결을 빠르게 종료하여 리소스 절약 |
tcp_keepalive_intvl | 75초 | 15초 | 비정상 세션을 더 빨리 감지 |
tcp_keepalive_probes | 9회 | 5회 | 빠르게 죽은 연결을 감지하고 종료 |
tcp_keepalive_time | 7200초(2시간) | 1200초(20분) | 세션을 더 빨리 닫아 리소스 절약 |
'IT > 리눅스' 카테고리의 다른 글
리눅스 nameserver DNS 날라가는 증상 해결 (0) | 2025.02.18 |
---|---|
리눅스 PCS(Pacemaker) H/A 구축 가이드 - 명령어 (0) | 2025.02.17 |
리눅스 PCS(Pacemaker) H/A 구축 가이드 - 추가본3 (0) | 2025.02.17 |
리눅스 PCS(Pacemaker) H/A 구축 가이드 - 추가본2 (0) | 2025.02.17 |
리눅스 PCS(Pacemaker) H/A 구축 가이드 - 추가본1 (0) | 2025.02.17 |