대용량 파일 전송에 사용되는 경우는 대부분 single thread 기반의 nonblock socket 을 이용합니다. thread 나 fork 는 피하는 편이죠. 세션별 성능은 thread 나 fork 의 성능이 nonblock socket 보다 좋지만, session 수가 많아지면 역효과가 나기 때문에 single thread 기반으로 작성을 많이 합니다.
서비스 쪽으로 보자면, lighttpd 나 thttpd, nginx 등과 같은 single thread 기반의 http protocol 을 많이 사용합니다. 클라이언트 입장에서도 구현하기가 쉽고, 요즘 ISP 들의 탐지 장비들에도 별 신경쓸 필요없이 통과할 수 있기 때문입니다. 이 문제 때문에 P2P의 경우에도 http protocol 의 206 을 이용하는 경우도 꽤 있습니다.
서비스를 말하는
서비스를 말하는 건가요? 아니면 프로그래밍 logic 을 말하는 건가요?
대용량 파일 전송에 사용되는 경우는 대부분 single thread 기반의 nonblock socket 을 이용합니다. thread 나 fork 는 피하는 편이죠. 세션별 성능은 thread 나 fork 의 성능이 nonblock socket 보다 좋지만, session 수가 많아지면 역효과가 나기 때문에 single thread 기반으로 작성을 많이 합니다.
서비스 쪽으로 보자면, lighttpd 나 thttpd, nginx 등과 같은 single thread 기반의 http protocol 을 많이 사용합니다. 클라이언트 입장에서도 구현하기가 쉽고, 요즘 ISP 들의 탐지 장비들에도 별 신경쓸 필요없이 통과할 수 있기 때문입니다. 이 문제 때문에 P2P의 경우에도 http protocol 의 206 을 이용하는 경우도 꽤 있습니다.
os 별로 지원하는 AIO
os , kernel 별로 지원하는 AIO Lib 기반으로 각 kernel 들이 지원하는 zero copy 방식(혹은 Lib)을 찾아보시는게 도움이 되실것 같습니다.
Neogeo - Future is Now.
Neogeo - Future is Now.
댓글 달기