문제

저는 TCP 에코 서비스로 작동하는 애플리케이션을 생성하는 데 사용하는 TCP 서버 구현을 작성했습니다.

이제 이 에코 서버를 테스트하고 싶습니다.

  • 처리할 수 있는 연결 수
  • 응답시간은 얼마나 되나요?
  • 얼마나 많은 메모리와 CPU를 사용합니까?

이 에코 서버를 테스트하기 위한 표준 방법/도구를 제안해 주실 수 있습니까?나는 TCP와 에코 서버 구현이 모두 상당히 표준적인 방식이라는 것을 알고 있으므로 이를 테스트하기 위해 확립된 도구를 찾고 싶습니다.

추신.:나만의 테스트 애플리케이션을 작성할 수 있지만 어떤 문제가 발견되면 내 서버에서 문제가 발생하는지 확인해야 하기 때문에 작성하고 싶지 않습니다.테스트 클라이언트를 먼저 테스트하고 싶지 않습니다.

나는 C#과 .NET 3.5를 사용하여 이 구현을 작성했지만 질문과 관련해서는 중요하지 않다고 생각합니다.

도움이 되었습니까?

해결책

당신에게 도움이 될 수 있는 무료 도구가 있습니다.저는 C++ 서버 프레임워크로 구축된 서버를 테스트하는 데 이를 사용합니다.이 도구는 다음에서 사용할 수 있습니다. http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html.이를 통해 구성 가능한 속도로 대상 서버에 대해 구성 가능한 수의 연결을 생성한 다음 각 연결에서 데이터를 다시 구성 가능한 속도로 보낼 수 있습니다.

이를 사용하는 가장 좋은 방법은 서버와 다른 컴퓨터에서 실행하는 것이며(아주 분명하지만...) 여러 다른 컴퓨터에서 여러 복사본을 실행하는 것입니다.약 4000개 이상의 연결을 만들 수 없다면 연결을 조정해야 할 가능성이 높습니다. MAX_USER_PORT 클라이언트를 실행하는 컴퓨터의 레지스트리 설정입니다.

TCP 코드를 테스트한 후에는 서버가 지원하는 프로토콜을 테스트해야 할 수도 있습니다.저는 CodeProject(http://www.codeproject.com/KB/IP/testingsocketservers.aspx).이를 통해 프로토콜을 지원하고 프로토콜에 구애받지 않는 작업(많은 연결, 조각난 읽기를 위한 메시지 분할 등)을 처리하는 "플러그인"을 작성할 수 있습니다.디자인은 다소 지저분한 연결당 스레드 디자인이며 더 많은 수의 연결에 대해서는 비동기 디자인을 사용하여 무언가를 다시 구현하는 것이 더 나을 것입니다. 하지만 저는 이를 위한 C++ 도구를 가지고 있으므로 이 테스트 프로그램을 변경할 생각이 전혀 없습니다. .

다른 팁

이전에 같은 상황에서 나는 Funkload를 사용했습니다. 소규모 클라이언트를 파이썬 코드 스 니펫으로 작성할 수 있다면 FunkLoad가 원하는만큼 서버에 대해 많은 것을 실행하고 결과를 그래프로 표시합니다.

https://funkload.nuxeo.org/

일련의 테스트 서버에 대한 완전한 작업 예제는 공개 소스 코드 저장소가 도움이되는 경우 My Foundation of Python Network 프로그래밍 북의 두 번째 판의 중심입니다.

https://github.com/brandon-rhodes/fopnp/tree/m/py2/chapter07

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top