커널 파라미터 적용
#vi /etc/sysctl.conf
파일시스템 관련 파라미터
fs.file-max = 8000000: 동시에 열 수 있는 최대 파일 수를 지정
네트워크 관련 파라미터
net.core.optmem_max = 16777216: 소켓이 추가적으로 요청할 수 있는 선택적 메모리의 최대 크기(바이트)입니다. 주로 고부하 네트워크에서 패킷 손실을 줄이기 위해 값을 높게 설정
net.core.rmem_max = 16777216: 수신 버퍼의 최대 크기(바이트)로, 소켓이 사용할 수 있는 최대 수신 버퍼 크기를 제한, 대규모 네트워크 트래픽을 처리하는 서버에서 수신 버퍼를 확장하여 성능을 높이기 위해 설정
net.core.rmem_default = 16777216: 수신 버퍼의 기본 크기(바이트)를 설정, 네트워크 패킷을 빠르게 처리해야 하는 경우 기본값을 높여 네트워크 처리 속도를 높임
net.core.somaxconn = 8192: 대기 연결 큐의 최대 크기, 서버가 한 번에 처리할 수 있는 최대 대기 연결 수를 설정하며, 대형 웹 서버에서 트래픽 몰림을 방지하기 위해 높임
net.core.wmem_max = 16777216: 송신 버퍼의 최대 크기(바이트), 네트워크 소켓의 최대 송신 버퍼 크기를 지정하여 송신 패킷 처리 속도를 높임
net.core.wmem_default = 16777216: 송신 버퍼의 기본 크기(바이트)를 설정, 송신 패킷 처리 성능을 높이기 위해 이 값을 크게 설정
net.ipv4.tcp_fin_timeout = 15: TCP 연결이 닫힐 때 FIN_WAIT 상태에 머무는 시간(초)을 지정, 이 시간을 줄이면 비정상적으로 종료된 연결의 자원을 더 빨리 해제
net.ipv4.tcp_keepalive_intvl = 30: TCP keepalive 패킷을 보내는 간격(초)을 설정, 연결이 유효한지 확인하기 위해 정해진 시간마다 패킷을 전송
net.ipv4.tcp_keepalive_probes = 5: 연결 유효성 확인을 위해 보낼 최대 keepalive 패킷 수, 일정 횟수 이상 응답이 없으면 연결이 끊어진 것으로 간주
net.ipv4.tcp_keepalive_time = 180: TCP keepalive가 시작되기 전까지의 시간(초), 연결이 유지되고 있는지 확인하기 위해 지정한 시간 후에 패킷을 보내기 시작
net.ipv4.tcp_mem = 8192 87380 16777216: TCP 메모리의 최소, 기본, 최대 한계를 설정, 고부하 서버의 네트워크 성능 최적화에 사용
- 8192: 시스템이 메모리 사용을 최소화하려 할 때의 값
- 87380: 메모리 할당의 기본 값
- 16777216: 메모리 사용량이 이 값을 넘으면 메모리 해제가 시도
net.ipv4.tcp_max_syn_backlog = 8192: 수신 연결 큐에서 대기할 수 있는 최대 연결 수, SYN 패킷이 대기열을 넘어서면 해당 연결은 거부되며 많은 연결 요청을 처리하는 서버에 적합
net.ipv4.tcp_retries2 = 3: TCP 재전송 횟수를 지정, 이 값만큼 시도해도 응답이 없으면 연결을 종료
net.ipv4.tcp_syn_retries = 2: SYN 패킷 전송 실패 시 재시도 횟수, 초기 연결 시도에서 이 값만큼 재전송을 시도한 후 연결을 포기
net.ipv4.tcp_sack = 1: TCP Selective Acknowledgment(SACK) 기능을 활성, 손실된 패킷만 재전송하여 네트워크 효율성을 높임
net.ipv4.tcp_timestamps = 1: TCP 타임스탬프를 활성화하여 네트워크 혼잡을 줄이고 효율을 개선
net.ipv4.tcp_window_scaling = 1: TCP 창 크기 확장을 활성화하여 데이터 전송 효율을 높임
커널 및 메모리 관련 파라미터
kernel.msgmni = 2878: 시스템에서 허용하는 최대 메시지 큐 수를 지정, IPC 메시지 큐의 최대 수를 설정하여 동시 프로세스 통신을 처리
kernel.pid_max = 65536: 시스템에서 생성할 수 있는 최대 PID 수를 지정, 많은 수의 프로세스를 실행하는 시스템에서 필요한 경우 값을 증가
kernel.sem = 1000 32000 100 512: 세마포어 제어 관련 파라미터
- 1000: 각 세마포어 집합에 포함될 수 있는 최대 세마포어 수
- 32000: 모든 세마포어의 최대 개수
- 100: 시스템이 생성할 수 있는 최대 세마포어 집합 수
- 512: 시스템이 동시에 사용할 수 있는 최대 세마포어 수
kernel.shmmni = 4096: 시스템이 허용하는 최대 공유 메모리 세그먼트 수를 설정, 공유 메모리를 많이 사용하는 서버 환경에서 값을 높임
가상 메모리 관련 파라미터
vm.swappiness = 10: 시스템의 스왑 메모리 사용 성향을 지정, 값이 낮을수록 물리 메모리를 더 오래 사용하며, 값이 높을수록 자주 스왑 메모리를 사용한다. 일반적으로 10으로 설정하여 스왑 사용을 최소화하고 성능을 향상
vm.vfs_cache_pressure = 10000: VFS 캐시(디렉터리와 inode 캐시)의 해제 빈도를 설정,. 이 값이 높을수록 파일 시스템 캐시가 자주 해제된다. 높은 값으로 설정하여 캐시가 오래 유지되지 않도록 하여 메모리를 더 많이 확보하려는 경우에 유용