검색

26장. TCP_NODELAY를 사용하여 네트워크 대기 시간 개선

download PDF

기본적으로 TCP 는 Nagle의 알고리즘을 사용하여 작은 발신 패킷을 수집하여 모두 한 번에 보냅니다. 이로 인해 대기 시간이 증가할 수 있습니다.

사전 요구 사항

  • 관리자 권한이 있어야 합니다.

26.1. TCP_NODELAY 사용의 영향

전송되는 모든 패킷에 대해 대기 시간이 짧은 애플리케이션은 TCP_NODELAY 옵션이 활성화된 소켓에서 실행되어야 합니다. 이렇게 하면 이벤트가 발생하는 즉시 커널에 버퍼 쓰기를 보냅니다.

참고
TCP_NODELAY 가 효과적이려면 애플리케이션은 작고 논리적으로 관련된 버퍼 쓰기를 피해야 합니다. 그렇지 않으면 이러한 작은 쓰기로 인해 TCP 가 이러한 여러 버퍼를 개별 패킷으로 보내 전체 성능이 저하됩니다.

애플리케이션에 논리적으로 관련된 여러 버퍼가 있고 하나의 패킷으로 전송되어야 하는 경우 다음 해결 방법 중 하나를 적용하여 성능이 저하되지 않도록 합니다.

  • 메모리에 연속된 패킷을 빌드한 다음 TCP _NODELAY 로 구성된 소켓의 논리 패킷을 TCP로 전송합니다.
  • I/O 벡터를 만들고 TCP_NODELAY 로 구성된 소켓에서 writev 명령을 사용하여 커널에 전달합니다.
  • TCP_CORK 옵션을 사용합니다. TCP_CORKTCP 가 패킷을 전송하기 전에 애플리케이션이 코스크를 제거할 때까지 대기하도록 지시합니다. 이 명령을 실행하면 수신하는 버퍼가 기존 버퍼에 추가됩니다. 이렇게 하면 애플리케이션이 커널 공간에 패킷을 빌드할 수 있으므로 계층에 추상화를 제공하는 다른 라이브러리를 사용할 때 필요할 수 있습니다.

애플리케이션의 다양한 구성 요소에 의해 논리 패킷이 커널에 빌드된 경우 소켓을 분리하여 TCP 가 즉시 누적된 논리 패킷을 보낼 수 있어야 합니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.