본문 바로가기
IT/리눅스

리눅스 커널 파라미터, 네트워크 파라미터 설정

by JGSHIN 2025. 2. 18.
SMALL

커널 파라미터

 

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

 

======================================================

  1. nproc (Number of Processes)
    • 한 사용자(tmax)가 생성할 수 있는 최대 프로세스 개수를 65,536개로 설정.
    • 다중 프로세스를 사용하는 애플리케이션(웹 서버, DB, 대규모 프로세스 기반 서비스)에서 최대 동시 실행 프로세스 개수를 확장할 수 있음.
    • 너무 낮으면 프로세스 생성이 제한되므로 서버 성능 저하 및 장애 발생 가능.
    • 너무 높으면 리소스를 과도하게 사용할 수 있어 시스템 성능 저하 가능.
  2.  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분) 세션을 더 빨리 닫아 리소스 절약

 

LIST
📧 이메일 문의
by @ 2025 JGSHIN