超线程简介

超线程简介

超线程的技术原理

超线程技术在一个物理核上模拟两个逻辑核,两个逻辑核具有各自独立的寄存器(eax、ebx、ecx、msr等等)和APIC,但会共享使用物理核的执行资源,包括执行引擎、L1/L2缓存、TLB和系统总线等等。

超线程对性能的影响分析

可以看出,超线程技术仅仅是在一个物理核心上使用了两个物理任务描述符,物理计算能力并没有增加。现在很多程序如web application, 都采用多worker设计,在超线程的帮助下,两个被调度到同一核心不同超线程的worker,通过共享cache, TLB,大幅降低了任务切换的开销。另外,在某个worker不忙的时候,超线程允许其它的worker也能使用物理计算资源,有助于提升物理核整体的吞吐量。但由于超线程对物理核执行资源的争抢,业务的执行时延也会相应增加。

何时应该开启/关闭超线程

超线程应该关闭还是开启,主要还是取决于应用模型:

1. 对于时延敏感性任务,比如用户需要及时等待任务运行结果的,在节点负载过高,引发超线程竞争时,任务的执行时长会显著增加,影响用户体验;

2.对于后台计算型任务,比如后台编译构建(一般要运行数小时),建议开启超线程提高整个节点的吞吐量;


你可能感兴趣的:(linux内核与编程,数据中心优化)