다음을 통해 공유


느린 애플리케이션 인식

이 가이드에서는 성능이 저하된 Microsoft Windows 애플리케이션으로 느린 애플리케이션을 식별합니다. 느린 애플리케이션은 다음 증상 중 하나 이상을 표시합니다.

  • CPU 및 네트워크 사용률이 낮습니다.

    컴퓨터가 무언가를 기다리고 있는 것처럼 보입니다. 애플리케이션이 네트워크에서 대기하는 경우가 많습니다.

  • TCP_NODELAY 소켓 옵션을 통해 Nagle 알고리즘을 끄면 성능이 향상됩니다.

    이는 다른 문제를 나타내며 솔루션으로 간주해서는 안 됩니다. Nagle 알고리즘을 끄면 프로토콜 오버헤드가 증가합니다. 애플리케이션에서 성능 문제를 해결하기 위해 다른 작업이 필요하다는 표시로만 이 메서드를 손상된 애플리케이션에 대한 수정으로 사용하지 마세요.

  • 애플리케이션은 높은 오버헤드를 나타냅니다.

    애플리케이션 오버헤드를 계산하려면 각 방향으로 전송하려는 데이터의 양을 결정합니다. 그런 다음 Netstat를 사용하고 각 패킷에 대해 60바이트, 각 연결에 대해 500바이트(이더넷의 경우)를 추가합니다. 이더넷을 통해 스트리밍할 때 예상되는 최상의 오버헤드는 약 6%입니다. 모뎀 연결의 경우 PPP 링크가 헤더 압축을 사용하므로 가장 좋은 오버헤드는 약 2%입니다. 자세한 내용은 Netstat를 사용하여 오버헤드 계산 을 참조하세요.

  • 연결에 큰 RTT가 있는 경우 애플리케이션 응답이 느려집니다.

    애플리케이션이 링크의 대역폭에 접근하지 않는다고 가정하면 큰 RTT는 거의 또는 전혀 영향을 미치지 않아야 합니다. 대규모 RTT의 급격한 속도 저하는 직렬화된 처리 및 많은 소규모 트랜잭션의 명확한 징후입니다.

모든 애플리케이션은 대규모 RTT가 있는 환경에서 테스트해야 합니다. 이렇게 하면 개발 선택이 좋지 않은 대부분의 애플리케이션이 표시됩니다. 이 테스트는 무선 LAN 네트워크, 링크 지연 시뮬레이터 또는 위성 네트워크를 비롯한 여러 환경에서 수행할 수 있습니다.

애플리케이션 동작

고성능 Windows 소켓 애플리케이션

Nagle 알고리즘