问题:使用超线程技术可能对系统造成哪些负面影响?

简介:

超线程技术能够在很大程度上帮助系统管理员提升处理器性能表现,但是管理员还是应该注意使用这种技术的最终结果可能难以预测。

问题:使用超线程技术可能对系统造成哪些负面影响?

新手系统管理员最常犯的错误之一就是认为使用超线程技术与添加一个全新内核是一样的——但实际情况并非如此。超线程技术并不会为处理器内核增加任何额外计算资源,只是允许不同任务共享内核的现有计算资源而已。如果处理器使用率相对较低,拥有充足的空闲时间,那么这种方式能够大幅度提升系统的性能表现。新增加的线程通过运行额外任务能够有效利用内核空闲时间,这样处理器——以及整个系统——就能够在同样的时间段内完成更多的任务。

但是超线程技术并非总是能够起到帮助作用。比如,超线程技术的成功需要依赖于合适的调度系统,只有Windows Server 2016这样的全新一代操作系统才具有这种特性。即便底层硬件处理器能够支持超线程,并且在系统BIOS中已经启用这种特性,但是像Windows Server 2013这样的操作系统并不能识别超线程。此外,超线程技术能够带来的性能提升会随着内核数量的增加而逐渐降低。比如,借助于超线程技术,单核系统最多能够实现30%的性能提升,而双核系统通常最多只能实现15%的性能提升。而四核——或者更多核心——的处理器需要在启用和关闭超线程的情况下分别进行测试,才能够最终确定性能表现。但是既然已经拥有了多个物理内核,那么同时使用多个内核比使用超线程技术要更加高效。

在hypervisor中启用CPU affinity特性也需要十分小心。如果启用超线程技术,hypervisor能够在系统的物理和逻辑核心之间提供良好的线程调度和自动负载均衡功能。启用CPU affinity特性将会对hypervisor的调度和负载均衡能力造成影响,导致系统不能提供最好的性能表现。CPU affinity特性还会对CPU针对特定虚拟机进行资源预留的能力造成影响。即便CPU affinity特性在当前服务器上能够发挥其作用,如果将虚拟机迁移到不同处理器数量的其他服务器上,也会对CPU affinity特性造成严重影响,因此最好让hypervisor或者操作系统自动进行配置。

最后,不要忽略负载自身的特性。使用多个逻辑处理器并不会对单线程负载带来任何帮助作用,因此超线程技术无法提升这些负载的性能表现。此外,需要占用大量计算资源以及需要和内存进行大量数据传输——也就是占用大量内存I/O——的负载也无法受益于超线程技术。因此需要在了解常驻内存负载的特性之后再决定是否使用超线程技术,或者将负载迁移到其他启用(未启用)超线程技术的系统上。

超线程技术允许不同任务共享处理器内核的空闲计算资源。使用这种方式,管理员无需购买或者添加/升级处理器,使用现有处理器就能够完成更多的任务。但是这种技术并非适用于任何硬件或者负载。在评估全新负载的性能和迁移特性过程中,考虑超线程技术所带来的影响,并且在必要的时候禁用超线程技术。

本文转自d1net(转载)

目录
相关文章
|
2月前
|
Linux 调度 数据库
Linux下的系统编程——线程同步(十三)
Linux下的系统编程——线程同步(十三)
52 0
Linux下的系统编程——线程同步(十三)
|
22天前
|
安全 数据处理 C++
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
【Qt 底层之事件驱动系统】深入理解 Qt 事件机制:主事件循环与工作线程的交互探究,包括 QML 的视角
102 3
|
25天前
|
安全 Python
Python中的并发编程:多线程与多进程技术探究
本文将深入探讨Python中的并发编程技术,重点介绍多线程和多进程两种并发处理方式的原理、应用场景及优缺点,并结合实例分析如何在Python中实现并发编程,以提高程序的性能和效率。
|
20天前
|
NoSQL 数据处理 调度
【Redis深度专题】「踩坑技术提升」探索Redis 6.0为何必须启用多线程以提升性能与效率
【Redis深度专题】「踩坑技术提升」探索Redis 6.0为何必须启用多线程以提升性能与效率
45 0
|
30天前
|
资源调度 算法 Linux
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
Linux进程/线程的调度机制介绍:详细解析Linux系统中进程/线程的调度优先级规则
48 0
|
30天前
|
存储 安全 数据管理
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
Linux系统编程教程之Linux线程函数的使用:讲解Linux线程函数
18 1
|
23天前
|
存储 算法 Linux
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
25 0
|
29天前
|
缓存 编译器 程序员
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
C/C++编译器并行优化技术:并行优化针对多核处理器和多线程环境进行优化,以提高程序的并行度
60 0
|
30天前
|
算法 Linux 调度
Linux 线程介绍:介绍Linux系统中线程的基本概念、创建和调度机制
Linux 线程介绍:介绍Linux系统中线程的基本概念、创建和调度机制
15 0
|
30天前
|
消息中间件 存储 安全
Linux 进程和线程介绍:介绍Linux系统中进程和线程的基本概念、执行方式和相互关系
Linux 进程和线程介绍:介绍Linux系统中进程和线程的基本概念、执行方式和相互关系
32 1
Linux 进程和线程介绍:介绍Linux系统中进程和线程的基本概念、执行方式和相互关系