8장. 많은 수의 들어오는 요청을 사용하여 애플리케이션 튜닝


웹 서버와 같이 들어오는 많은 요청을 처리하는 애플리케이션을 실행하는 경우 Red Hat Enterprise Linux를 조정하여 성능을 최적화해야 할 수 있습니다.

8.1. 많은 수의 TCP 연결 시도를 처리하기 위해 TCP 수신 백로그 조정

애플리케이션이 LISTEN 상태에서 TCP 소켓을 열면 커널은 이 소켓에서 처리할 수 있는 허용되는 클라이언트 연결 수를 제한합니다. 클라이언트가 처리할 수 있는 애플리케이션보다 더 많은 연결을 설정하려고 하면 새 연결이 삭제되거나 커널이 SYN 쿠키를 보냅니다.

정상적인 워크로드가 있고 합법적 클라이언트의 연결이 너무 많은 경우 커널이 SYN 쿠키를 전송하고 이를 방지하기 위해 RHEL(Red Hat Enterprise Linux)을 조정합니다.

사전 요구 사항

  • RHEL은 Systemd 저널의 포트 < ip_address > : <port_number> 오류 메시지에서 SYN 플러딩이 발생할 수 있습니다.
  • 연결 시도가 많은 수는 유효한 소스에서 발생하며 공격으로 인한 것이 아닙니다.

프로세스

  1. 튜닝이 필요한지 확인하려면 영향을 받는 포트의 통계를 표시합니다.

    # ss -ntl '( sport = :443 )'
    State    Recv-Q   Send-Q   Local Address:Port   Peer Address:Port  Process
    LISTEN   650      500      192.0.2.1:443        0.0.0.0:*

    백로그(Recv-Q)의 현재 연결 수가 소켓 백로그(전송-Q)보다 크면 수신 백로그가 여전히 충분히 크지 않고 튜닝이 필요합니다.

  2. 선택 사항: 현재 TCP 수신 백로그 제한을 표시합니다.

    # sysctl net.core.somaxconn
    net.core.somaxconn = 4096
  3. /etc/sysctl.d/10-socket-backlog-limit.conf 파일을 생성하고 더 큰 수신 백로그 제한을 설정합니다.

    net.core.somaxconn = 8192

    애플리케이션은 net.core.somaxconn 커널 매개변수에 지정된 것보다 더 큰 수신 백로그를 요청할 수 있지만 커널은 이 매개변수에 설정한 수로 애플리케이션을 제한합니다.

  4. /etc/sysctl.d/10-socket-backlog-limit.conf 파일에서 설정을 로드합니다.

    # sysctl -p /etc/sysctl.d/10-socket-backlog-limit.conf
  5. 새 수신 백로그 제한을 사용하도록 애플리케이션을 재구성합니다.

    • 애플리케이션에서 제한에 대한 구성 옵션을 제공하는 경우 업데이트합니다. 예를 들어 Apache HTTP Server는 이 서비스에 대한 수신 백로그 제한을 설정하는 ListenBacklog 구성 옵션을 제공합니다.
    • 제한을 구성할 수 없는 경우 애플리케이션을 다시 컴파일합니다.
    중요

    항상 net.core.somaxconn 커널 설정과 애플리케이션의 설정을 모두 업데이트해야 합니다.

  6. 애플리케이션을 다시 시작합니다.

검증

  1. 포트 < port_number> 오류 메시지에서 SYN 플러딩 가능한 추가 발생을 위해 Systemd 저널을 모니터링합니다.
  2. 백로그에서 현재 연결 수를 모니터링하고 소켓 백로그와 비교합니다.

    # ss -ntl '( sport = :443 )'
    State    Recv-Q   Send-Q   Local Address:Port   Peer Address:Port  Process
    LISTEN   0        500      192.0.2.1:443        0.0.0.0:*

    백로그(Recv-Q)의 현재 연결 수가 소켓 백로그(전송-Q)보다 크면 수신 백로그가 충분히 크지 않고 추가 튜닝이 필요합니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동