2012-05-15 2 views
4

I Linux 커널 2.6.32를 Intel (R) Xeon (R) CPU E31275 @ 3.40GHz에 이식합니다. BIOS에서 하이퍼 스레딩을 활성화하면 8 개의 CPU 코어 (CPU0 ~ CPU7)를 볼 수 있습니다. 대부분의 인터럽트는 CPU 4에서 발생하며이 코어의 CPU 사용량은 다른 것보다 훨씬 높습니다 (다른 것보다 거의 두 배). IRQ 바인딩 작업을 설정하지 않았기 때문에 잘 이해하지 못합니다.하이퍼 스레딩을 활성화 한 후에 성능이 저하되는 이유는 무엇입니까?

BIOS에서 하이퍼 스레딩을 비활성화하면 모든 것이 정상입니다. IRQ가 균형을 이루고 모든 코어 (CPU0 ~ CPU3)의 CPU 사용량이 거의 균형을 이룹니다.

누군가 설명 할 수 있습니까? BIOS 관련 있습니까? 커널에서 특별한 설정을해야합니까?

+0

성능은 수행하는 작업에 따라 크게 달라질 수 있습니다. 숫자를 줄이는 프로그램, 많은 디스크 I/O를하는 프로그램 및 많은 네트워크 I/O를하는 프로그램은 매우 다르게 작동합니다. – ugoren

답변

5

일부 프로그램은 HT (하이퍼 스레딩)에서 부정적인 영향을 받으므로이를 설명하려면 HT가 무엇인지 이해해야합니다. 당신이 말한대로 7 개 (0-7은 8 개)의 CPU 코어를 보았지만 이것은 사실이 아닙니다. CPU에 4 개의 코어가 있고 8 개의 코어가 가상 코어이므로 하나의 코어에 2 개의 스레드가 있습니다 2 개 코어). 일반적으로 HT는 CPU/OS가 8 개의 프로그램을 동시에 실행할 수 있고, HT없이 동시에 4 번만 실행할 수 있다는 사실로 인해 프로그램을 더 빠르게 실행하는 데 도움이됩니다. 이 모양을 바꿀 수 없기 때문에 설정을 지정하지 않아도됩니다.이 프로그램의 개발자는 원하는 경우 코드를 다시 검사하여 HT에 맞게 최적화하거나 HT 만 사용 중지 할 수 있습니다.

일부 허튼 소리에 대한 또 다른 정보는 다음과 같습니다. HT는 CPU의 성능을 향상시키고 있습니다. 이것은 사실이 아닙니다! u가 8GHz 코어를 볼 때도 4GHz (GHz는 아무 것도 말하지 않고 플립으로 측정해야 함)라고 말하면서 HT를 켜고 4GHz로 4 코어를 얻을 때와 같은 파워를 얻게됩니다. 2 개의 가상 코어에서 HT를 얻는 경우 CPU에서 1 개의 물리적 코어를 공유합니다. 여기

HT에 대한 좀 더 많은 정보 : http://www.makeuseof.com/tag/hyperthreading-technology-explained/

나는 느린 존재의 의미 나쁜에서 (HT 좋은 코드 나쁜 코드를 보여줍니다 코드 조각이있다 아주 좋은 사이트에 내 옛날 링크를 찾을 수 couldnt는

HT가없는 경우와 그 반대의 경우).

TL : DR : 개발로 인해 모든 프로그램 혜택이 HT에서 나오는 것은 아닙니다.

+0

이것은 리눅스 섹션이므로 추가해야 할 노트입니다. HT는 Winblows에서 Linux에서 잘 작동합니다. 여전히 HTS가 활성화되어있는 시스템에서 winblows를 사용하는 경우 계속 사용하십시오. – K1773R

+0

정보를 제공해 주셔서 감사합니다. HT에 나쁜 코드를 찾아야한다고 생각합니다. 그러나 Linux 커널의 경우 많이 수정하지 않았기 때문에 스케줄링이 왜 이상한 지 알 수 없습니다. – flypen

+0

커널 코드를 볼 필요가 없습니다. 응용 프로그램의 코드입니다. sheduling 이상한, 그냥 기술의 조각. 이 질문에 대한 답변이 있으면이 질문을 수락하십시오 (그렇지 않은 경우 다른 APPL이 대답 할 것입니다). 더 많이 알 필요가 있으면 물어보십시오. 인사 – K1773R

관련 문제