为什么即使我的应用程序(利用 CPU 资源)滞后,我的 CPU 也无法发挥其最大潜力?

为什么即使我的应用程序(利用 CPU 资源)滞后,我的 CPU 也无法发挥其最大潜力?

为什么即使我的应用程序占用了 40% 的 CPU(但仍有 30-40% 的 CPU 处于空闲状态)并且比较滞后,我的 CPU 也从未达到最大值?

这是否意味着:

  1. 有一种方法可以强制 CPU 以 100% 运行
  2. CPU 就是这样制造的,我唯一能做的就是购买新硬件。
  3. 限制在于应用程序,即使使用更好的 CPU,延迟也不会改善。(假设应用程序是完美的,我问的是软件是否能以那种方式运行?)
  4. 其他东西。

答案1

您可能正在运行单线程应用程序,这些应用程序只能最大限度地利用单个 CPU 核心。由于一个核心的 100% 小于多核 CPU 容量的 100%,全部的CPU 利用率未达到 100%。

您可以通过查看任务管理器中的单个核心利用率来确认这一点。查找接近最大利用率的单个核心。

答案2

您尚未指定您的操作系统。因此答案将是常见的。

应用程序可能会因各种原因而受到限制。瓶颈可能在于:

  • 中央处理器
    • 低速
    • 单/低线程应用程序(无法使用所有核心/线程)
  • 输入/输出
    • 磁盘吞吐量
    • 磁盘延迟
    • 网络吞吐量
    • 网络延迟
  • 记忆
    • 容量
    • 吞吐量
    • 潜伏
    • 缓存不足
    • 局部性 (NUMA)
    • 交换

还有很多原因,但并不常见。

因此,请查看您的系统资源并尝试分析系统是否存在其他瓶颈,而不仅仅是总 CPU 负载。

答案3

通常,当人们谈论他们的电脑运行缓慢时,我会提到灰尘。作为一名拥有 15 年专业经验的前计算机技术人员,我发现只需吹掉灰尘就可以显著提高性能。

我指的不是薄薄的、几乎察觉不到的灰尘,而是大团灰尘,甚至是阻碍正常气流的垫子。我见过散热器,上面基本上有一个灰尘过滤器,而不是真正的过滤器。这会阻挡大量空气冷却 CPU。清除这样的灰尘会立即使风扇安静下来,并使您的组件使用寿命更长。我被要求修理的许多计算机都因高温而损坏。

除了散热问题,您还可以尝试使用更好的导热膏。大多数处理器附带的白色垃圾就像导热膏中的 Yugo。我使用 Arctic Silver,但甚至还有比它更好的东西。Arctic Silver 是关于保时捷的(使用汽车评级标准),但那里有法拉利和超级跑车的变种。

处理器过热时往往会变慢。这是物理现象,也是许多 CPU 中编程的“自我保护”现象。我不知道它在任务管理器上是否仍会显示 100% 或是否会显示 40%(如您所见),但当 CPU 试图让散热器和风扇“跟上”时,速度可能会显著减慢。

另一个可能降低 CPU 速度的因素是 GPU。如果您正在运行图形密集型游戏或实用程序(如 CAD),GPU 可能会拖累 CPU。购买更好的显卡可能是值得考虑的事情。此外,使用错误的显卡也可能会拖累您。游戏卡(通常)不是为与 CAD 和工作站卡配合使用而设计的,工作站卡(通常)也不太适合玩游戏。有些可以,但大多数都不能。

正如 @Jaroslav Kucera 提到的,这可能与磁盘有关。频繁使用硬盘会大大降低您的速度。我通常运行多个驱动器。一个专用于操作系统,其他用于软件、Windows 页面文件、个人文件等。除了不必担心在操作系统发生故障时备份个人数据外,拥有多个硬盘还可以大大分散工作量。同时读取和写入同一个磁盘会严重降低硬盘的速度。使用 SHD 可以缓解这种情况,但不能完全缓解。众所周知,Photoshop 和视频编辑软件会严重影响硬盘。从一个硬盘读取然后输出到第二个硬盘是可行的方法。这也有助于延长硬盘的使用寿命。我还为硬盘安装了主动冷却系统。自从 15 年前在硬盘上安装风扇和散热器以来,我从未损坏过硬盘。谷歌搜索它们,它们是便宜的保险。

信不信由你,你的 PSU 也可能会拖慢你的速度。如果你没有足够的电力(或者你的 PSU 很旧,或者是便宜、被高估的中国 POS),你可能会遇到性能问题。我亲眼目睹过不稳定的 PSU 会造成什么样的奇怪的操作系统问题。你正在寻找电压和安培,所以如果你走这条路,请确保它们都符合 PSU 上的规格,还要确保它们满足或超过你的电力需求。如果你的组件总功率为 500 瓦,而你给它们的功率甚至为 475 瓦,那就糟糕了。我建议将你的要求超出约 20%,这样当你的 PSU 变旧(并降低功率)并且你的其他组件变旧(并需要更多的功率)时,你就不会这么快就不得不购买新的 PSU。

包括这里的其他答案,还有更多原因导致您的计算机运行缓慢。除了 PSU 选项之外,我谈到的这些问题在我当计算机技术人员时非常常见。进行基准测试和其他测试是您能够解决问题的唯一方法。如果是多个部件的组合导致速度变慢,则更换部件甚至可能无法解决问题。

而且,据我所知,没有办法强迫您的计算机使用 100% 的处理器。CPU 和操作系统通常知道它们需要做什么,并且非常擅长它们的工作。:-) 我认为还没有人找到一种方法来强制给 CPU 喂食,让它在您认为应该的时候以 100% 运行。至少在不给它喂食额外的垃圾以使百分比“看起来不错”的情况下。

由于您看到的是 40%,而不是整数除以 100%(例如 25%、33% 或 50%),我感觉这不是单线程问题。可能是,但我不这么认为。不过,@Twisty Impersonator 马上提出这个问题,我对此表示 +1。

祝你好运!我花了好几天时间试图解决这种问题,但最终只能“不得已”更换大部分内脏。

答案4

我在执行渲染和数学任务时经常达到 100% 的利用率。我将验证超线程是否会达到 100% 的高利用率,并且指令排序是一件大事。英特尔和 AMD 都拥有大量专用于指令重新排序的硬件,以填充尽可能多的执行核心。如果你在现代机器上获得 30% 的利用率,你可能会

  • 检查温度 - 英特尔和 AMD 在变热时都会降频,并显示为卡顿和峰值。
  • 不会做太多的事情......例如:
    1. 网页浏览
    2. 电子邮件
    3. 最简单的游戏
    4. 我几乎可以保证您的问题是以下一个或所有问题,从顶部开始:
  • 获取 SSD
  • 获取 SSD
  • 将您的操作系统放在 SSD 上,并将普通数据移动到传统的多 TB 驱动器。Windows 需要比任何东西都更多地访问其本地文件。
  • 博纳扎伊伙伴?
  • 至少保持所有驱动器的容量在 10% 以上。NTFS 是一种日志文件系统,驱动器越满,性能就越低。
  • 您需要尽快为您的操作系统驱动器配备 NVMe 驱动器/SSD(是的,我又说了一遍)。性能非常出色,并且延续到第二部分... 一家大型零售商今天以 300 美元的价格出售三星 961 NVMe 512GB 驱动器,这对于正常使用来说已经足够了。
  • Windows 10 的 GPU 负载很大。便宜的专用显卡可以减轻内存和 CPU 的负担。您仍然可以将 APU 与显卡结合使用,但这样可以节省一些 RAM,而且 VRAM 通常要快得多。
  • 核心数较低的 CPU 也受内存限制。如果你看看 i7,它们都在 4 个组中运行四通道 DDR。AMD 的 Epyc 芯片将是 8 通道 DDR5,有 64 个核心。没有帮助。最后,我再怎么强调这一点也不为过,把钱花在机器需要的 RAM 上。我有 32GB,今年晚些时候会再买 32GB。Windows 做了一些类似于 superfetch 的事情,但它更新一点,它会压缩未使用的 RAM 中的内存,以便程序和数据可以在需要时解压缩。再举一个例子,我运行一个用于开发的 Linux VM,分配了 6/12 个核心和 16GB RAM,在第一次从 SSD 加载后,它在大约 3 秒内启动。现在通过这样的优化,CPU 被认为非常便宜……从内存解压缩 Photoshop 比从磁盘加载更快,除非 SSD 非常快。

所有这些似乎都是多余的,直到我被困在编译 70k 文件项目或将大型相机原始文件升级到 17"x26"x600 dpi 16 位颜色。即使在 100% 利用率下,资源也如此多,以至于你不会感到速度变慢。前几天晚上,我意识到我有两个虚拟机和一个 Wolf 2,以及 2 个 IDE(我分心了,告我吧),并没有注意到速度变慢。顺便说一句,这是一台价值约 1500 美元的机器,没什么特别的,多年来购买速度最慢。其中一半是 Radeon RX64,因为我的显卡已经 6 年了。渲染等方面的巨大差异。升级可能会让你更多地利用硬件,而不是假设你只能使用 30%。

如果我在这台机器上安装一个 5400RPM 的硬盘作为操作系统,它的运行就会变得非常糟糕。

TL;DR 听起来你现在的 CPU 性能很差。花几百块钱买一个至少 256GB 的 SSD 来安装操作系统,8GB 的​​内存,以及一张低端游戏卡,这台电脑可以用好几年。这台电脑用了 6 年,直到我终于更新了处理器和主板,我每天用旧设备编译整个交叉编译器套件大约 25 次。

你可以说我有点过分,但我并不推荐使用 8 块 Tesla 卡或任何东西。尽可能进行小规模升级,我认为你可以解决很多这些问题。几年前,我通过在 Q6600 系统中添加 SSD 来实现这一点,结果发现性能提高了三倍。

相关内容