AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 937408
Accepted
Glasnhost
Glasnhost
Asked: 2018-10-27 08:29:10 +0800 CST2018-10-27 08:29:10 +0800 CST 2018-10-27 08:29:10 +0800 CST

2 个 CPU 上的 50% 负载与一个 CPU 上的 100% 负载相同吗?

  • 772

非常基本的疑问:我有一个应用程序在具有 2 个 vCPU 的 VM 上运行。两个 CPU 的平均负载略低于 50%。

这是否意味着 1 个 CPU 足以满足我的应用程序?还是更多 CPU 受益于并行运行的线程?

编辑:这是我系统的一个真实示例,它由 8CPU 组成,超过一个月。数据归一化为 100%=8CPU。我想知道这些信息是否足以解决我的问题,基本上是系统是否过大。

CPU负载

CPU使用率

cpu-usage
  • 2 2 个回答
  • 1223 Views

2 个回答

  • Voted
  1. Best Answer
    Halfgaar
    2018-10-27T08:47:49+08:002018-10-27T08:47:49+08:00

    这不是那么简单。使用一个线程或进程尽可能多地消耗 CPU,在双 CPU 系统上最多可以使用 50% 的 CPU。或者,某些系统会将其显示为 100% CPU,因为此时最大值为 200% CPU。

    如果你有两个线程在一个内核的 50% CPU 上运行(所以它们不会最大化),也许它们在单个内核上运行的速度差不多,但是你会看到 100%。(这没有考虑到机器还有其他事情要做,并且上下文切换会导致开销。)

    例如,如果您有两个线程在 50% 的时间内休眠并计算其他 50% 的时间,则一个 CPU 可以交替这两个线程的休眠和计算,以便使用 100% 的 CPU。

    编辑:

    我想我会展示一些示例图来说明它。

    该服务器运行 16 个高 CPU 进程,以及数百个低 CPU 进程。3 月份,我决定将它升级到 8 个 CPU/内核(因此跃升至 800%),主要是因为我不得不在它上面运行一段时间的额外软件,你可以看到。

    8 个 CPU

    从 5 月到 7 月的大部分时间里,4 个核心可能就足够了。但是,我确实知道我的一些流程(进行批处理)会被延迟。

    这是随附的负载图:

    负载图

    它是相关的,但正如您所看到的,它不仅仅是百分比/100。

    您希望此类图表能够做出明智的决定。

    编辑 2,关于您的图表:

    有趣的。这些图表是用什么制作的?它们都以与我习惯相反的方式表示数据:系统中所有内核的 CPU 利用率似乎达到 100%,而不是像我的图表那样每个内核 100%。你可以运行dd if=/dev/urandom of=/dev/null几个小时来测试它;这将导致一个核心最大化,你会看到效果。

    负载图显示每个核心的负载。我以前从未见过。uptime, htop, munin: 他们都只显示load。

    • 5
  2. jision
    2018-10-28T01:39:56+08:002018-10-28T01:39:56+08:00

    实际上,您永远无法仅通过查看 CPU 使用率来理解需求,现代 CPU 根据需求以合适的方式生成线程。

    应用程序可以拥有更多的核心优势来运行线程。

    • -2

相关问题

  • 衡量覆盖网络性能的正确方法

  • 在服务器上处理高度 CPU 密集型进程

  • TrustedInstaller.exe 占用大量 CPU

  • WMI 会导致 CPU 蠕变吗?

  • mysqld_safe 在 100% CPU

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve