적정 스레드 수치라는 것을 잡는다는게 어렵다.

다음은 [1]에서 본 것으로 윈도우즈 네트워크 프로그래밍이란 책에서 추천하는 스레드의 수라고 한다.


스레드 개수 = ( 프로세스 개수 X 2 ) + 1 


스레드 개수 = ( 프로세스 개수 X 2 ) + 2 


성능 및 안정성에서 위에 수치가 적정하다고 본다.

하지만 최상의 성능을 끌어내기 위한 수치는 아니라고 본다.


적정 스레드 수치가 아닌 최상의 스레드 수치를 끌어내려면

하드웨어 성능과 소프트웨어의 시스템 설계를 고려해서 정해야만 한다.


JBoss 경우에는 512개, Netty의 경우에는 코어의 수만큼이 되어 있다.

Netty가 가지고 있는 스레드 이 기본값(코어의 수)은 스레드가 CPU를 100% 사용한다고 할 때의 수치이다.

만약 각 스레드가 CPU를 10%사용한다면 각 CPU들은 90%가 놀게 되니 최적의 성능을 끌어낼 수 없을 것이다.

JBoss가 갖는 기본값이 512개도 설계상의 이유가 있을것이다.



Reference

[1] GrpStudy ( http://www.gpgstudy.com/forum/viewtopic.php?p=60875 )

Leave a Comment


to Top