웹서버 권고 파라미터 : 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
OS 전체 파라미터 설명 : https://chanchan-father.tistory.com/278
네트워크 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 "" |
'OS > Centos' 카테고리의 다른 글
APACHE Log Analysis (아파치 로그 분석) (0) | 2020.06.01 |
---|---|
ss 명령어 사용법 (0) | 2020.04.09 |
리눅스(Centos, Redhat 등) 웹 모니터링 솔루션 - Cockpit (0) | 2019.08.19 |
Centos 7 Firewall-cmd 관련 정보들 (0) | 2019.05.08 |
Centos 7 서버 설정 하기 (0) | 2019.04.17 |