티스토리 뷰

728x90
반응형

 포스팅은 WEB Server 설치 시 권고 파라미터에 대해 알아보겠습니다.


WEB Server 설치 시 OS Kernel 권고 Parameter에 대해 살펴보겠습니다.


파라미터

설명

권고값

net.ipv4.tcp_keepalive_intvl

TCP TIME_WAIT 상태를 줄이기 위한 설정

15

net.ipv4.tcp_keepalive_probes

손실된 TCP 상태 감지 시간 설정

5

net.ipv4.tcp_keepalive_time

keep alive 시간을 설정

30

net.ipv4.ip_local_port_range

사용할 수 있는 포트 범위를 설정

1024 - 65000

net.core.netdev_max_backlog

백로그에 들어오는 소켓 개수를 설정

2500

net.ipv4.tcp_retries1

TCP 연결에 문제가 있을 때 연결을 재시도하는 횟수

3

net.ipv4.tcp_retries2

TCP 연결을 끊기 전에 재시도하는 횟수

3

net.core.rmem_max

TCP 수신 버퍼크기 최대값 설정

56777216

net.core.rmem_default

TCP 수신 버퍼크기 기본값 설정

16777216

net.core.wmem_max

TCP 전송 버퍼크기 최대값 설정

56777216

net.core.wmem_default

TCP 전송 버퍼크기 기본값 설정

16777216

net.ipv4.tcp_window_scaling

65kb 이상의 큰 TCP 윈도우 스케일링 사용

1

net.ipv4.tcp_orphan_retries

서버 측에서 닫은 TCP 연결을 끊기 전에 확인하는 횟수

(기본값은 7로 50초에서 16분까지 소요)

0

net.ipv4.tcp_sack

SYNC 패킷을 전송한 후 일부 ACK를 받지 못했을 경우 선택적으로 받지 못한 ACK 패킷을 받도록 설정

(0은 받지 않는 설정, 1은 패킷 유실이 많은 사이트에 설정)

0

net.ipv4.tcp_fin_timeout

FIN 타임아웃을 시간을 줄여 FD를 빠르게 확보

15

반영 방법

vi /etc/sysctl.conf


# Update Kernel Parameter

net.ipv4.tcp_keepalive_time=30

net.ipv4.ip_local_port_range=1024 65000

net.core.netdev_max_backlog=2500

net.ipv4.tcp_retries1=3

net.ipv4.tcp_retries2=3

net.core.rmem_max=56777216

net.core.rmem_default=16777216

net.core.wmem_max=56777216

net.core.wmem_default=16777216

net.ipv4.tcp_window_scaling=1

net.ipv4.tcp_orphan_retries=0

net.ipv4.tcp_sack=0

net.ipv4.tcp_fin_timeout=10


vi /etc/security/limits.conf


...

...

apache    hard   nofile    65536

apache    soft    nofile    65536

apache    soft    npoc    2047

apache    hard   npoc    16384

#End of File



커널파라미터 영구적으로 적용하는 방법

ulimit –n 값 확인 (max number of open files )

- max number of open files값이 디폴트값이 1024이며최소 8192 이상으로 설정 권고함.

아래와 같이 /etc/security/limits.conf 파일에서 수정하면 영구적으로 적용된다.

[확인방법]

test:/home/nrson> ulimit -a

: (생략)

max number of open files (-n) 65536

max user processes (-u) 65536

[변경방법]

/etc/security/limits.conf 추가하는 방법이 있다.

/etc/security/limits.conf 아래의 내용을 추가한다.

# nofile tunning - max number of  open files

apache    hard   nofile    65536

apache    soft    nofile    65536

apache    soft    npoc    2047

apache    hard   npoc    16384

 

TCP 커널 파라미터 튜닝 및 확인방법

/etc/sysctl.conf 파일을 아래와 같이 수정한다. 그리고, 바로 적용하기 위해서 root권한에서 sysctl -p 명령을 실행한다그러면, OS를 restart하더라도 설정한 TCP 커널 파라미터 값들이 초기화되지 않는다.

적용된 내용을 확인하는 방법은 sysctl –a 명령을 실행하면 결과값이 출력된다.

# Update Kernel Parameter

net.ipv4.tcp_keepalive_intvl = 15

net.ipv4.tcp_keepalive_probes = 5

net.ipv4.tcp_keepalive_time = 30

net.ipv4.ip_local_port_range=1024 65000

net.core.netdev_max_backlog=2500

net.ipv4.tcp_retries1=3

net.ipv4.tcp_retries2=3

net.core.rmem_max=56777216

net.core.rmem_default=16777216

net.core.wmem_max=56777216

net.core.wmem_default=16777216

net.ipv4.tcp_window_scaling=1

net.ipv4.tcp_orphan_retries=0

net.ipv4.tcp_sack=0

net.ipv4.tcp_fin_timeout=15

 

# 참고자료

http://publib.boulder.ibm.com/wasce/V1.0.1/ko/Tasks/Tuning/Linux.html


728x90
반응형