반응형

 

 

  웹서버 권고 파라미터 : https://waspro.tistory.com/406
WAS서버 권고 파라미터 : https://waspro.tistory.com/407
일반적인 권고 파라미터 : https://yoonroot.tistory.com/entry/Parameter-CentOS-Parameter-%EA%B3%84%EC%86%8D-%EC%B6%94%EA%B0%80-%EC%98%88%EC%A0%95

 

[WEB Server] TCP 권고 Parameter

본 포스팅은 WEB Server 설치 시 권고 파라미터에 대해 알아보겠습니다. WEB Server 설치 시 OS Kernel 권고 Parameter에 대해 살펴보겠습니다. 파라미터 설명 권고값 net.ipv4.tcp_keepalive_intvl TCP TIME_WAIT..

waspro.tistory.com

 

 

[WAS Server] TCP 권고 Parameter

본 포스팅은 WAS Server 설치 시 권고 파라미터에 대해 알아보겠습니다. WAS Server 설치 시 OS Kernel 권고 Parameter에 대해 살펴보겠습니다. 파라미터 설명 권고값 net.ipv4.tcp_keepalive_intvl TCP TIME_WAIT..

waspro.tistory.com

 

[Parameter] CentOS Parameter (계속 추가 예정)

1. 테스트 환경 - OS: CentOS 7.5 기준 2. 설정 방법 - parameter setting vi /etc/sysctl.conf - parameter apply sysctl -p >> growpart <하드디스크명> <파티션번호> - parameter check sysctl -a 3. parameter..

yoonroot.tistory.com

OS 전체 파라미터 설명 : https://chanchan-father.tistory.com/278

 

OS 최적 설정 가이드

1. sysctl 파라미터 1) sysctl 정의 - sysctl은 kernel parameter 값들을 조정하기 위한 utility입니다. - sysctl이 조절할 수 있는 값들은 /proc/sys/ 아래에 있는 리스트들입니다. - RHEL에서는 procps라는 패키..

chanchan-father.tistory.com

 

네트워크 capacity 관련 파라미터

 

1. 리눅스 전체 파일 개수 제한
  - 부족시 : too many open files 에러 발생
  - 정보조회 : sysctl fs.file-max
  ※ 현재 열린 개수 : sysctl fs.file-nr
 
  - 임시 적용 : ulimit -SHn 값
  - 영구 적용 : /etc/security/limits.conf 수정
     > https://sysops.tistory.com/99
 

2. backlogs (네트워크 패킷 처리 큐량) 

  - In-Bound Queue 길이 증가
    > net.core.netdev_max_backlog : 각 네트워크 장치 별로 커널이 처리하도록 쌓아두는 Queue의 크기를 설정   
    > net.core.netdev_max_backlog 이 미정의되면 값이 1000 기본
    > 적용
       /etc/sysctl.conf 파일내
       net.core.netdev_max_backlog=30000
      
   - listen 값 변경 (accept를 기다리는 ESTABLISHED 상태 소켓 큐)
     기본값은 128
     > 적용
       /etc/sysctl.conf 파일 내
       net.core.somaxconn=1024
      
    - listen 값 변경 (SYN-RECEIVE 상태의 소켓)  
     > 적용
       /etc/sysctl.conf 파일 내
       net.ipv4.tcp_max_syn_backlog=1024
      

3. 사용할 수 있는 포트 RANGE
   - 확인 명령
     > sysctl net.ipv4.ip_local_port_range

   - 적용     
     /etc/sysctl.conf 파일 내
      net.ipv4.ip_local_port_range=1024 65535
     
4. 서버 메시지 큐 관련    
    - 확인 명령
      >    sysctl kernel.msgmax
 
    /etc/sysctl.conf 파일 내   
    - 하나의 프로세스에서 다른 프로세스로 보내질 수 있는 최대 메시지 사이즈 지정  (아래는 기본 크기)
   
    # 최대 메시지 큐의 크기를 지정하며 bytes 단위로 지정 (최대 65,536보다 작게 설정함)
    kernel.msgmax = 8192   
    

 

    # kernel.msgmni (자동할당되는 최대 메시지 큐)


    # 기본 메시지 큐의 최대 크기 (최대 메시지 큐의 크기보다 작거나 같아야 함)
    kernel.msgmnb = 16384   

 

 


clear
echo ""
echo "1. TCP Time Wait 상태를 유지하는 시간 변수 조회(기본 : 7200초)"
echo " > WEB,WAS 서버 기준 : 15"
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_intvl

echo ""
echo "2. Keep Alive가 끊어졌다고 판단하고 세션을 정리하는 동안 보낼 Ping-Pong 패킷 수(기본 :9)"
echo " > WEB,WAS 서버 기준 : 5"
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_probes

echo ""
echo "3. 세션이 끊어지지 않게 Keep Alive Time 설정 (기본 : 7200)"
echo " > WEB, WAS 서버 기준 : 30 / 데몬 서버는 연결되어야할 초 시간 기준으로 설정함."
echo ""

sysctl -a | grep net.ipv4.tcp_keepalive_time

echo ""
echo "4. 사용할 수 있는 포트 범위를 설정 "
echo " > WEB, WAS 서버 기준 : 1024 - 65000"
echo ""

sysctl -a | grep net.ipv4.ip_local_port_range

echo ""
echo "5. 각 네트워크 장치 별로 커널이 처리하도록 쌓아두는 Queue의 크기 설정 (기본 1000)"
echo " > WEB, WAS 서버 기준 : 2,500"
echo " ※ 일부 소켓 accept라고 오역되는 사이트가 존재함"
echo ""

sysctl -a | grep net.core.netdev_max_backlog

echo ""
echo "6. Accept를 기다리는 ESTABLISHED 상태 소켓 큐 (기본 128)"
echo " > 5번의 큐 크기의 1/30 정도의 크기를 할당함"
echo ""

sysctl -a | grep net.core.somaxconn

echo ""
echo "7. SYN-RECEIVE 상태의 소켓 큐(기본 128)"
echo " > 5번의 큐 크기의 1/30 정도의 크기를 할당함"
echo ""

sysctl -a | grep net.ipv4.tcp_max_syn_backlog

echo ""
echo "8. TCP 연결 문제시 재시도하는 횟수"
echo " > WEB, WAS 서버 기준 : 3"
echo ""

sysctl -a | grep net.ipv4.tcp_retries1

echo ""
echo "9. TCP 연결 끊기전에 재시도하는 횟수 "
echo " > WEB, WAS 서버 기준 : 3"
echo ""

sysctl -a | grep net.ipv4.tcp_retries2

echo ""
echo "10. TCP 수신 버퍼의 최대값 설정 "
echo " > WEB, WAS 서버 기준 : 56777216"
echo ""

sysctl -a | grep net.core.rmem_max

echo ""
echo "11. TCP 수신 버퍼크기 기본값 설정"
echo " > WEB, WAS 서버 기준 : 16777216"
echo ""

sysctl -a | grep net.core.rmem_default

echo ""
echo "12. TCP 전송 버퍼크기 최대값 설정"
echo " > WEB, WAS 서버 기준 : 56777216"
echo ""

sysctl -a | grep net.core.wmem_max

echo ""
echo "13. TCP 전송 버퍼크기 기본값 설정"
echo " > WEB, WAS 서버 기준 : 16777216"
echo ""

sysctl -a | grep net.core.wmem_default

echo ""
echo "14. 65Kb 이상의 큰 TCP 윈도우 스케일링 사용"
echo " > WEB, WAS 서버 기준 : 1 "
echo ""

sysctl -a | grep net.ipv4.tcp_window_scaling

echo ""
echo "15. 서버 측에서 닫은 TCP 연결을 끊기 전에 확인하는 횟수(기본값 7 RTO)"
echo " > WEB, WAS 서버 기준 : 0"
echo ""

sysctl -a | grep net.ipv4.tcp_orphan_retries

echo ""
echo "16. SYNC 패킷을 전송 후 일부 ACK를 받지 못했을 때 선택적으로 ACK 패킷을 받도록 설정(0 : 받지않음, 1: 패킷유실 많은 사이트)"
echo " > WEB, WAS 서버 기준 : 0"
echo ""

sysctl -a | grep net.ipv4.tcp_sack

echo ""
echo "17. TCP 연결 해제 시간 (기본 : 60초)"
echo " > WEB, WAS 서버 기준 : 15"
echo ""

sysctl -a | grep net.ipv4.tcp_fin_timeout

echo ""
반응형

+ Recent posts