소켓서버 구현중 동시접속 1000까지 유지할라면 쓰레드풀 사용시 쓰레드 갯수는 몇개로 해야될까요?
글쓴이: tipgon1 / 작성시간: 금, 2014/01/17 - 4:45오후
소켓서버를 구현할 예정입니다.
동시접속 많은거는 처음인지라 문의합니다.
서버 사양 :
Red Hat Enterprise Linux Server release 6.4 (Santiago)
Intel(R) Xeon(R) CPU E5-2697 v2 @ 2.70GHz(12코어) * 2장
클라이언트가 동시접속이 최대 1000정도될듯합니다.
서버가 하는 일은 소켓연결후 Req를 파싱하여 간단한 데이터를 Res 보내는 역활입니다.
금새 끝나고 서버의 부하는 없을듯 합니다.
그래서 소켓연결후 금방 처리후 소켓닫고 합니다.
소켓세션이 문제가 될듯합니다.
세션요청이 좀 빈번하다고 봅니다.
1. 소켓에 Accept 들어오면 쓰레드 생성후 처리하고 쓰레드 종료
2. 쓰레드풀 생성하여 처리
두가지중 하나로 해야될거 같은데요....
1번같은 경우는 쓰레드 생성 종료시 너무 많은 자원을 할꺼 같아
2번으로 해야되지 싶습니다. 제가 쓰레드풀은 사용해보지 않아서요...ㅠ
2번으로 했을시 쓰레드풀의 쓰레드 갯수는 몇개정도를 해야되며...
쓰레드풀은 어떤쪽으로 활용을 해야되는지가 궁금합니다.
(죄송스럽게도 슈도코드로 설명해주시면 감사하겠습니다~~^^)
그럼 불금인데 남은 시간 수고하세요~~~~^^
Forums:
산수 조금만 해보면 될 듯 합니다.
예를 들어 평균 Req 처리시간이 0.1 초이면 스레드 하나가 Req 10 개 처리할 수 있으므로
스레드 풀 사이즈는 100 이면 됩니다.
쓰레드 개수가 보통 CPU 개수 * 2 + 1이라던데요..
보통 찾아보니 쓰레드 개수가 CPU 개수 * 2 + 1이라던데요..
너무 많은 쓰레드는 성능향상에 안좋다고 하여서요...일단 50~100개 내외로 테스트를 해볼 참이긴 합니다.
대략적인 내용을 알고싶어서 올린거네요~ㅎㅎㅎ
댓글 달기