2010-07-26 4 views
1

우리는 약 5-10 개의 클라이언트에서 500KB/초의 속도로 메시지를 수신하고 내부 논리를 수행하여 수신 된 메시지를 30-35 다른 네트워크로 분배하는 애플리케이션 요구 사항을 가지고 있습니다. 엔티티.tcp 레벨 처리량을 높이기위한 제안

모든 TCP 레벨 또는 스레드 레벨 최적화가 제안 되었습니까?

답변

0

~ TCP 연결 당 4Mbits/초 (8 x 500KB/초)는 특별한 최적화없이 잘 작성된 코드의 기능 내에 있습니다. 물론 이것은 목표 시스템의 클럭 속도가 GHz 단위로 측정되고 RAM이 낮지 않은 것으로 가정합니다.

TCP 연결 당 60-80 Mbits/초 범위에 도달하면 프로파일 링 및 대응책이 필요한 병목 현상이 발생하기 시작합니다.

질문에 답하기 위해 문제가 발생하지 않는 한 TCP 또는 스레드 최적화가 제안되지 않습니다.

1

때때로 프로그래머는 "발에서 스스로 쏠"수 있습니다. 한 가지 예는 setsockopt/SO_RCVBUF를 사용하여 Linux 사용자 공간 응용 프로그램의 소켓 버퍼 크기를 늘리는 것입니다. 최근 Linux 배포판에서는 수신 윈도우의 자동 튜닝이 비활성화되어 트리거를 가져 오지 않은 경우보다 성능이 떨어집니다.

관련 문제