Windows 2003 서버에 배포하는 소프트웨어를 구축했습니다. 이 소프트웨어는 지속적으로 서비스로 실행되며 Windows 중요도 상자에 나와있는 유일한 응용 프로그램입니다. 시간의 일부분은 인터넷에서 데이터를 가져 오는 것이고, 일부는 데이터에서 계산을하는 것입니다. 그것은 멀티 스레드입니다 - 나는 약 4-20 스레드의 스레드 풀을 사용합니다.최적의 CPU 사용률 임계 값
나는 모든 세부 사항을 설명하지는 않겠지 만, 풀에서 더 많은 스레드를 사용할 수있게되면 더 많은 동시 작업이 발생하고 CPU 사용이 증가한다고 말하면 충분합니다. (대역폭과 같은 다른 리소스에 대한 수요가 그렇듯이 나에게 관심이 없다. 나는 충분하다.)
내 질문은 이것이다. 나는 CPU를 최대한 활용하여 내 돈을 위해 최선을 다해야 하는가? ? 직관적으로, 나는 100 % CPU에서 실행하는 것이 타당하지 않다고 생각한다; 심지어 95 %의 CPU도 높은 것처럼 보입니다. OS가 할 일을 수행하는 데 많은 공간을주지는 않는 것처럼 말입니다. 나는 최고의 균형을 식별하는 올바른 방법을 모른다. 나는 측정하고 측정 할 수있을 것 같았고 아마도 최고 처리량이 90 % 또는 91 %의 CPU 평균 사용률에서 달성된다는 것을 알았지 만 ...
엄지 손가락의 좋은 규칙이 있는지 궁금합니다. 이것에 관해서??? 테스트에서 모든 종류의 워크로드가 고려 될 것이라고 가정하고 싶지는 않습니다. 차라리 조금은 안전하게 플레이 하겠지만 안전하지는 않습니다 (아니면 하드웨어가 부족합니다).
무엇이 좋습니다? Windows에서 멀티 스레드, 혼합로드 (일부 I/O, 일부 CPU) 응용 프로그램에 대한 스마트하고 성능 중심적인 활용 규칙은 무엇입니까?
스레드는 보통 우선 순위를 주면 OS가 동일하게 작동합니다. 당신이 원하지 않는 것은 우선 순위를 부여하는 것입니다. –