Search

리눅스 서버 운영을 위해서 하면 좋은 설정들 정리

작성일시
2024/07/12 13:23
수정일시
2024/09/21 06:25
스택
Linux
카테고리
CheatSheet
태그
커널파라미터
ulimit
우분투
ubuntu
1 more property
이 글은 계속 업데이트 됩니다. 즐겨찾기 하고 가끔 필요할 때 확인해보세요.

커널 파라미터 설정

/etc/sysctl.conf

# /etc/sysctl.conf # 할당 가능한 포트 번호 제한 해제 net.ipv4.ip_local_port_range=1024 65535 # accept()을 기다리는 ESTABLISHED 상태의 소켓(즉, connection completed)을 위한 queue net.core.somaxconn=65535 # 각 네트워크 장치 별로 커널이 처리하도록 쌓아두는 Queue의 크기 net.core.netdev_max_backlog=5000 # SYN 백로그 큐 크기 net.ipv4.tcp_max_syn_backlog=30000 # TCP 연결에서 SYN Backlog가 가득찼을때 # SYN패킷을 SYN Backlog에 저장하지 않고 ISN(Initial Sequence Number 을 만들어서 # SYN + ACK를 클라이언트로 전송하여 SYN 패킷 Drop 방지 net.ipv4.tcp_syncookies=1 # 시스템이 가질 수 있는 TIME_WAIT 상태 소켓 개수 제한 net.ipv4.tcp_max_tw_buckets=1800000 # 사용할 수 있는 local port 수가 모자라면 # 현재 TIME_WAIT 상태의 소켓 중 프로토콜상 사용해도 무방해 보이는 소켓을 재사용 net.ipv4.tcp_tw_reuse=1 # 단시간에 sequence number가 overflow되는 상황에서 # 새로 수신한 패킷을 버리는 문제를 해결(*tcp_tw_reuse 옵션 사용을 위해 필수) net.ipv4.tcp_timestamps=1 # 소켓이 TIME_WAIT 상태에 머무르는 시간을 1분 대신 # RTO(Retransmission Timeout) 시간만큼 변경하여 TIME_WAIT 상태의 소켓 수를 감소시킴 # -- # 기능사용시 네트워크 성능은 크게 향상되지만 # 클라이언트가 NAT/LB 환경인 경우 일부 클라이언트로 부터의 SYN 패킷이 유실 발생 net.ipv4.tcp_tw_recycle=0 # TCP 헤더의 옵션 필드에 window scale라는 필드를 정의하여 # advertise할 수 있는 receiver window size를 증가 net.ipv4.tcp_window_scaling=1 # receiver window size 증가를 위해 실제 커널에 설정된 소켓당 버퍼 크기를 증가 net.core.wmem_default=253952 net.core.rmem_default=253952 net.core.wmem_max=8388608 net.core.rmem_max=8388608 net.ipv4.tcp_wmem=8192 87380 8388608 net.ipv4.tcp_rmem=8192 87380 8388608 # 커널이 최대로 핸들링 할 수 있는 파일의 개수 fs.file-max=100000
Bash
복사

ulimit 설정

/etc/security/limits.conf

# /etc/security/limits.conf # 코어 크기 # 코어 덤프 파일을 디버깅할 때 사용할 수 있으나, 크기가 매우 커서 서버 장애를 유발할 수 있음 <user> soft core 0 <user> hard core 0 # Openfiles 개수 # 프로세스가 핸들링할 수 있는 파일 개수 <user> soft nofile 524288 <user> hard nofile 524288
Bash
복사

참조

net.ipv4.tcp_tw_reuse, net.ipv4.tcp_tw_recycle 파라미터에 대해서 알고 싶다면?