나는 바울의 최근 블로그에 확장하고 싶습니다 "당신의 사전 생산 테스트가 효과적인가?". Paul은 CPU 사용률과 코드 경로를 다루었지만 네트워크 사용률이라는 많은 응용 프로그램의 매우 중요한 측면이 있습니다. 많은 응용 프로그램은 밀리초 범위의 대기 시간 및 대역폭이 최소 100mbps인 LAN 환경에서 테스트됩니다. 그런 다음 대역폭이 작고 대기 가 훨씬 높은 WAN에 사용할 수 있도록 배포됩니다. 결과는 재앙이 될 수 있습니다.
LAN 환경에서 테스트하면 대부분의 네트워크 관련 버그가 발견되지만 삭제된 패킷 또는 예기치 않은 세분화와 관련된 버그가 있을 수 있습니다(TCP는 메시지 경계를 유지 관리하지 않음) LAN 환경에서 볼 가능성이 적습니다. 또한 느린 WAN 환경에서 빠른 LAN 환경에서 최적의 설계보다 적은 설계를 발견할 가능성이 훨씬 적습니다. 따라서 최악의 네트워크 환경, 낮은 대역폭, 높은 대기 시간 및 패킷 손실률을 잊지 마세요.
이 작업을 수행하는 방법에는 두 가지가 있습니다.
첫 번째는 실제 환경을 사용하는 것입니다. 서버(또는 클라이언트)를 네트워크의 호스트에 배치하고 서버가 어떻게 작동하는지 확인합니다. 이는 실제 인프라를 사용할 수 있는 장점이 있습니다. 단점은 환경을 제어할 수 없다는 것입니다.
두 번째는 WAN 시뮬레이터를 사용하는 것입니다. 하드웨어 및 소프트웨어 만, 상업 및 오픈 소스 (무료) 시뮬레이터가 있습니다. 여기서 장점은 대기 시간, 패킷 드롭 속도 및 기타 네트워크 매개 변수를 완전히 제어할 수 있으며 다른 그룹(예: 다른 사람의 시스템에 소프트웨어를 넣을 때)을 포함할 필요가 없다는 것입니다. 단점은 비용과 학습 곡선입니다. 무료 소프트웨어를 사용하더라도 시스템을 제공해야 합니다(일반적으로 유닉스의 일부 맛)를 사용하여 이를 실행하고 사용하는 방법을 배워야 합니다. 몇 년 전 나는 더미넷에 대한 자습서를 썼다. 당시 그것은 사용할 수있는 몇 가지 무료 시뮬레이터 중 하나였다. 이제 더 많은, 그냥 구글 "완 시뮬레이터"가있습니다.
성능 및 응용 프로그램 실패 문제를 살펴보는 경험을 바탕으로 이러한 종류의 테스트는 버그로 인한 생산 중단 감소와 응용 프로그램 및 사용자 모두의 성능 향상으로 인해 자체적으로 비용을 지불할 것이라고 믿습니다.