2012-02-18 2 views
1

스레드에 대해 다소 혼란 스럽습니다. 파일 서버가 있고 N 개의 CPU로 구성된 경우 서버 성능을 극대화하기 위해 최대 사용자 모드 스레드 수를 지정해야합니다. 다른 프로세스는 스레드를 방해하지 않습니다. 글쎄 내 의견은 CPU 당 1 스레드가 충분하다는 것입니다. 왜냐하면 우리가 더 많이 스폰하면 I/O 작업이 끝나기를 기다려야하기 때문입니다. 더 많은 스레드를 생성하면 자원을 낭비하고 다른 스레드가 완료 될 때까지 차단됩니다. 우리가 다른 파티션이나 다른 드라이브에 파일을 읽거나 파일로 저장하려고하는지 확신 할 수 없다면, 새 스레드를 생성 할 수 있습니다. 당신의 의견을 나눌 수 있습니까?최대 출력을위한 최적의 스레드 수

답변

2

CPU 처리량을위한 최적의 스레드 수는 사용자가 정확하게 이름을 지정한 이유와 정확히 일치합니다. (하이퍼 스레딩이 가져 오는 멋진 "부분적"코어가 더 복잡해 지긴하지만 기본 규칙은 여전히 ​​유지됩니다.)

실제 세계에서 어디서나 I/O를 차단하면 프로세스에 추가 스레드가 있으면 CPU 처리와 I/O 처리를 효과적으로 겹칠 수 있습니다.

+0

동기화 또는 비동기 I/O 작업에 대해 언급해야합니까? 추가 스레드가 CPU 처리와 I/O 처리의 중복을 도울 수 있다는 것을 무슨 뜻으로 설명 할 수 있습니까? – bokarinho

+1

말 그대로 문자 그대로 메모리, 디스크, 네트워크 등 I/O에 대한 차단 작업을 CPU가 사용하는 경우 원래 스레드가 차단되어있는 동안 유용한 작업을 진행할 수 있습니다. –

관련 문제