我可以使用哪些性能统计数据来确定超线程是否会提高性能?

我可以使用哪些性能统计数据来确定超线程是否会提高性能?

有几个问题询问禁用超线程是否会提高性能(例如)答案(对所有性能问题而言都是如此)当然是“根据您的工作量进行分析”。

由于在生产环境中运行实验是一个糟糕的想法(谁愿意看到生产实验的性能下降!)并且设置现实的开发环境并不总是可行的,我想知道有哪些测量方法可用于确定超线程是否可能会损害性能(这样我们只运行可能成功的实验!)。

笔记:

  1. 这不是一个特定于 SQL 的问题,我不是在寻找 SQL 统计信息,而是寻找操作系统的性能计数器
  2. 源代码不可用,因此无法进行任何更改来监控性能。

答案1

我不知道你是否过于学术化,但对于大多数工作量来说现代的CPU,人们建议保持超线程开启。

现在,鉴于您尚未提供应用程序要求、操作系统版本/风格/分发或硬件规格/平台/CPU 型号等详细信息,因此很难提供任何真正的见解。

  • 哪些指标对您的业务或用户来说很重要?
  • 你有历史监控吗?
  • 您是否正在寻找类似的内置工具perf
  • 您是否遇到了性能问题今天
  • 使用类似以下工具查看您的系统网络数据真正看到系统正在发生什么。

但如果你使用的系统硬件搭载的是 Intel Nehalem 或更新的 CPU,我会保持超线程处于启用状态,除非你有令人信服的理由不这样做。如果你有一个确定性工作量或者某些依赖于单线程性能的东西,那么也许......但通常还有其他容易实现的成果,如电源性能配置文件、禁用 C 状态、BIOS 配置、操作系统级调整。

答案2

在生产环境中运行实验不是一个好主意

不是。创建一个真实的模拟环境将花费你大约相当于你的 IT 总支出——这不仅仅是重新安装服务器基础设施的成本,这是微小的与创建具有代表性但模拟的需求的成本相比,成本更低。有很多产品声称可以做到这一点 - 但我还没有看到任何接近的产品。

即使是拥有巨额 IT 预算的公司,也不会认为任何东西在经过生产测试之前具有被证明的价值。

振作起来。

至于您可以测量什么来确定您的系统是否因配置更改而得到改善或恶化,由于您没有告诉我们有关服务或组件的任何信息,因此我们无法回答这个问题。

相关内容