超线程处理器使用前:检查系统需求-阿里云开发者社区

开发者社区> 寒凝雪> 正文

超线程处理器使用前:检查系统需求

简介:
+关注继续查看

从观察CPU的关联设置到处理器可用性的检查,在使用管理程序的超线程处理器之前,需要考虑哪些事情。

超线程提供了性能优势,在管理程序中使用超线程时,超线程利用未使用的处理器资源,使处理器保持忙碌的状态,完成更多的任务。然而,管理程序中超线程的成功或者失败,取决于管理程序或操作系统是否可以探测到超线程技术。特定的虚拟机监控程序,例如VMware vSphere,在这一方面比较占优势。我们来仔细探讨一下,在向管理程序引入超线程之前,管理员应该考虑哪些事情。

管理程序的超线程,需要考虑哪些事情?

VMware vSphere 6通常在识别超线程处理器和调度处理器时间方面更有效率,从而能够智能地组织工作负载的线程分配。这是至关重要的,因为超线程基本上是利用自由的—未使用的或未被充分利用的—处理器执行资源的一种方式;超线程并不提供免费的处理器。如果管理程序最终试图将要求工作负载强加于两个逻辑处理器(位于同一物理核心)上,那么,工作负载可能会遭受严重的性能损失。如果缺乏管理程序或者操作系统的洞察力,最好将超线程关闭,将每个工作负载分配到不同的物理核心上。或者,你可以为工作负载提供多个非超线程的核心——多核,以增加可用的处理器资源。

超线程技术(HTT或HT)通常采用连续的CPU数量,所以,CPU 0和CPU 1处于第一核心,CPU 2和CPU 3处于第二核心,CPU 4和CPU 5处于第三核心等等。像VMware ESXi等虚拟机监控程序通常会将vm分配到不同的核心,而不是相同的核心。如果一个逻辑处理器处于空闲状态,则可以禁止其他同一核心的逻辑处理器使用所有处理器的执行资源。系统管理程序能够看到这些禁止状态,并且能够跟踪每个逻辑处理器的利用率。

工作负载调度存在的问题是:CPU关联偏好。管理员可以将VM绑定到vCPU。但是,如果两个要求工作负载都绑定到相同的核心逻辑处理器,其中一个工作负载就会出现同样的性能问题—通常—两个工作负载都会产生问题,因为底层物理核心不能满足两个线程的总处理要求。系统管理员必须密切关注CPU的关联设置,确保所有关联选择适合超线程处理器的工作负载。

不要忽视服务器中实际可用的处理器。几乎所有的现代服务器级别的处理器都支持超线程。例如,基于英特尔Xeon 5500架构处理器,英特尔奔腾4 HT-enabled,英特尔奔腾EE 840 HT-enabled以及后来的处理器模型,都能够处理超线程。然而,虚拟服务器还必须使用适合管理程序的处理器。

随着虚拟机监控程序的不断发展,老旧的处理器可能不再是合适的,因为这些老旧的处理器缺乏程序所需的某些特性和功能—这与超线程无关。例如,老式的AMD处理器包括Opteron 12 xx系列,Opteron 22 xx系列和Operton 82 xx系列不支持VMware vSphere 6—也不能安装。这意味着,在运行超线程或者安装/升级管理程序之前,检查系统要求是很重要的。

本文转自d1net(转载)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
用Thread替代Timer——简单的多线程处理(一)
本文计划写完后你可以得到一个具有简单线程管理功能的WinForm程序,你可以学到简单的线程管理和多线程任务处理。
4837 0
C++11线程使用总结
C++11线程使用总结 std::thread 在 <thread> 头文件中声明,因此使用 std::thread 需包含 <thread> 头文件。 <thread> 头文件摘要 <thread> 头文件声明了 std::thread 线程类及 std::swap (交换两个线程对象)辅助函数。
1244 0
rac中的cluvfy检查工具使用
1、验证的系统的需求在安装ORACLE RAC的时候cluvfy comp sys -n all -p {database,crs} -verbose2、检查是否有共享存储cluvfy comp ssa -n all -verbose3、检查节点间的连同性clu...
673 0
SpringBoot项目使用多线程处理任务时无法通过Autowired注入bean
  最近在做一个“温湿度控制”的项目,项目要求通过用户设定的温湿度数值和实时采集到的数值进行比对分析,因为数据的对比与分析是一个通过前端页面控制的定时任务,经理要求在用户开启定时任务时,单独开启一个线程进行数据的对比分析,并将采集到的温湿度数值存入数据库中的历史数据表,按照我们正常的逻辑应该是用户在请求开启定时任务时,前端页面通过调用后端接口,创建一个新的线程来执行定时任务,然后在线程类中使用 @Autowired 注解注入保存历史数据的service层,在线程类中调用service层保存历史数据的方法实现温湿度数据的保存,这时就出现了一个很尴尬的问题,在新开启的线程中使用 @Autowire
14 0
使用c#制作网络爬虫,检查站点可访问性
  前几天自己负责的网站出现了不能访问的问题,系统监控程序通过告警将这一信息告诉了管理员。管理员找到了我,告诉我站点不能正常访问。后来问题查明,是负载均衡器出了问题。自己在检查站点的时候,发现有些图片不能正确显示,原因是图片链接无效。
754 0
C#多线程编程系列(四)- 使用线程池
原文:C#多线程编程系列(四)- 使用线程池 目录 1.1 简介 1.2 在线程池中调用委托 1.3 向线程池中放入异步操作 1.4 线程池与并行度 1.5 实现一个取消选项 1.6 在线程池中使用等待事件处理器及超时 1.7 使用计时器 1.8 使用BackgroundWorker组件 参考书籍 笔者水平有限,如果错误欢迎各位批评指正! 1.1 简介 在本章中,主要介绍线程池(ThreadPool)的使用;在C#中它叫System.Threading.ThreadPool,在使用线程池之前首先我们得明白一个问题,那就是为什么要使用线程池。
848 0
+关注
5854
文章
223
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载