본문 바로가기
MiddleWare(미들웨어)/JEUS

[JEUS WebtoB] Linux 권고 파라미터

by wonkidoki 2023. 9. 5.
반응형

- Linux OS 의 경우 JEUS WebtoB에서 권고하는 파라미터 값이 있다.

- OS 자원을 효율적으로 사용하여 자원 낭비가 되지 않도록 활용해주면 보다 나은 성능을 보일 것이다.

 

1. 커널파라미터별 설명 및 설정방법

1.1 nofile ( max number of open files )

- 지원되는 열린 파일 수를 지정한다. 이매 개변수에 설정된 값이 너무 낮으면 파일 열기 오류, 메모리 할당 장애 또는 연결 설정 오류가 발생할 있다.

- 해당 값을 확인하려면 ulimit -a 명령을 사용한다.

· 기본값:SLES 9(SUSE Linux Enterprise Server 9) 경우 기본값은 1024

· 권장:8192이상

 

1.2 nproc ( max user processes )

- user에서 생성할 있는 최대 process 개수이며, process Thread 합한 개수이다. 만약 적게 설정되어 있을 경우에 native thread 생성할 없다는 에러등이 발생할 있다.

- 해당 값을 확인하려면 ulimit -a 명령을 사용한다.

· 기본값:SLES 9(SUSE Linux Enterprise Server 9) 경우 기본값은 1024

· 권장:8192이상

 

1.3 연결 백로그

- 수신 연결 요청의 높은 비율이 연결 실패가 값을 변경한다.

· echo 3000 > /proc/sys/net/core/netdev_max_backlog

· echo 3000 > /proc/sys/net/core/somaxconn

 

1.4 timeout_timewait 매개변수

TCP/IP 닫힌 연결을 해제하고 그의 자원을 다시 사용하기 전에 경과해야 하는 시간을 확인 하면 가장 좋다. 닫힌 연결을 재 사용하는 것이 새로운 연결을 맺는 것보다 효율적이므로 가능하다면 값을 줄여 재연결을 빠르게 하도록 한다. (TIME_WAIT 인 연결을 빨리 없애기 위함)

· echo 15 > /proc/sys/net/ipv4/tcp_fin_timeout

· 기본값:75

· 권장:15

 

1.5 TCP_KEEPALIVE_INTERVAL

- tcp_keepalive_intvl 값은 상대로부터 활성화 상태 지속 응답이 수신되지 않을 경우 TCP/IP에서 활성화 상태 지속 전송을 반복하는 빈도를 결정한다. 응답이 없는 연속적인 활성화 상태 지속 전송 수가 tcp_keepalive_probes의 값을 초과할 경우 연결이 중단된다. 응답 시간이 길 것으로 예상될 경우 이 값을 늘려 오버헤드를 줄여야 할 수 있다. 상대가 손실되었는지 확인하는 데 소비되는 시간을 줄여야 할 경우 이 값 또는 tcp_keepalive_probes 값을 줄인다.

· echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl

· 기본값:75

· 권장:15

 

1.6 TCP_KEEPALIVE_PROBES

- tcp_keepalive_probes 값은 TCP/IP가 기존 연결에 대한 수신확인되지 않은 활성화 상태 지속 메시지를 재전송하는 횟수를 결정한다. 네트워크 품질이 낮을 경우 이 값을 늘려 효과적인 통신을 유지해야 할 수 있다. 네트워크 품질이 높을 경우 이 값을 줄여 상대가 손실되었는지 확인하는 데 걸리는 시간을 줄여도 됩니다.

 echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes

· 기본값:9

· 권장:5

 

1.7 TCP_KEEPALIVE_TIME

- tcp_keepalive_time 값은 TCP/IP가 대기 연결이 계속 원래 상태를 유지하는지 확인을 시도하는 빈도를 제어한다. 이 시간 동안 주고 받는 통신이 있었는지를 확인하므로 네트워크의 지연이 없다면 이 변수를 줄여 쓸모 없는 연결을 없애도록 한다.

· echo 10 > /proc/sys/net/ipv4/tcp_keepalive_time

· 기본값:7200

· 권장:1200

 

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

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

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

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

[확인방법]
jeus:/home/jeus> ulimit -a
: (생략)
max number of open files (-n) 65536
[변경방법]
/etc/security/limits.conf  추가하는 방법이 있다.
/etc/security/limits.conf 아래의 내용을 추가한다.
# nofile tunning - max number of  open files
모든 계정에 적용
* soft nofile 65536
* hard nofile 65536

jeus 계정에 적용
jeus soft nofile 65536
jeus hard nofile 65536

 

2.2 ulimit -u값 확인 (max user processes )

- max user processes값이디폴트값이 1024이며, 최소 8192 이상으로 설정 권고함.

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

[확인방법]
jeus:/home/jeus> ulimit -a
: (생략)
max user processes (-u) 65536
[변경방법]
/etc/security/limits.conf  추가하는 방법이 있다.
/etc/security/limits.conf 아래의 내용을 추가한다.
: 아래는 예제이며, tmax라는 사용자 계정에 nproc값을 설정하였다.
모든 계정에 적용
* soft nproc 65536
* hard nproc 65536

jeus 계정에 적용
jeus soft nproc 65536
jeus hard nproc 65536

 

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

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

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

#tcp tuning
net.ipv4.tcp_fin_timeout = 30
net.core.netdev_max_backlog = 3000
net.core.somaxconn = 3000
net.ipv4.tcp_keepalive_intvl = 15
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_time = 1200