在高性能计算的背景下,CPU负载是否有一个合理/安全的水平?
一般情况下,我理解服务器的含义 of 负荷平均,但不知道为高性能计算而构建和使用的服务器会期望什么。
load <= # of cores的惯例是否适用于这种环境?
我对我的系统特定细节感到好奇,通常每个节点的load >> # of cores是这样的:
节点具有较高的正常运行时间,通常具有较高的CPU使用率/负载。硬件故障很少,特别是对于CPU,但是我不知道在高负载的节点的生存期内会发生什么。
示例top输出:
top - 14:12:53 up 4 days, 5:45, 1 user, load average: 313.33, 418.36, 522.87
Tasks: 501 total, 5 running, 496 sleeping, 0 stopped, 0 zombie
%Cpu(s): 33.5 us, 50.9 sy, 0.0 ni, 15.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 19650371+total, 46456320 free, 43582952 used, 10646443+buff/cache
KiB Swap: 13421772+total, 78065520 free, 56152200 used. 15164291+avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
85642 user 20 0 36.5g 7.6g 245376 S 1566 4.0 1063:21 python
97440 user 20 0 33.1g 5.3g 47460 S 1105 2.8 512:10.86 python
97297 user 20 0 31.0g 4.0g 69828 S 986.4 2.1 430:16.32 python
181854 user 20 0 19.3g 5.0g 19944 R 100.0 2.7 2823:09 python
...iostat -x 5 3在同一服务器上的输出:
avg-cpu: %user %nice %system %iowait %steal %idle
50.48 0.00 12.06 0.38 0.00 37.08
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 350.41 705.68 58.12 22.24 2126.25 3393.61 137.36 6.02 74.93 9.10 246.94 1.19 9.56
dm-0 0.00 0.00 4.87 8.70 511.41 516.65 151.59 0.31 22.55 28.40 19.28 2.62 3.56
dm-1 0.00 0.00 403.67 719.23 1614.71 2876.92 8.00 8.83 7.10 7.38 6.95 0.08 9.05
dm-2 0.00 0.00 0.00 0.00 0.02 0.01 65.03 0.00 3.74 3.82 1.00 2.12 0.00发布于 2020-07-16 15:41:58
显示可以运行的线程队列。在Linux中,这也包括等待磁盘的线程。故障NFS服务器可能会将负载平均增加到疯狂的数字。这并不意味着CPU被占用。
因此,负载平均值只显示了故事的一个方面,不能单独使用,这就是为什么我要求top输出。
有些工作负载是可并行的。这意味着所有的步骤都将一个接一个地运行在同一个核心上。实际问题通常是可部分并行的。
在性能方面,您有一些目标和限制。比如低延迟,吞吐量,成本(初始成本和运营成本).
如果您对吞吐量和低成本感兴趣,那么拥有高队列可能是正常的。您的所有CPU核心将是100%的使用率,一直。
发布于 2020-07-17 16:36:53
平均负载只是一种症状,是操作系统很容易报告的一个有用的指标。一个医生不能诊断出什么是人类的问题,一个人只要发烧症状,他们有更多的问题,是怎么回事。同样地,对于计算机病人,需要更多的背景来说明他们的表现。
在不同的系统之间,负载平均值可能会有很大的差异。有些平台不报告可能在平均负载中执行I/O的任务,这与Linux的工作方式不同。有些主机可以有平均负荷,每个核心在几十个,而不是跌倒。有些应用程序对延迟非常敏感,在用户响应时间不佳的情况下,每个内核的负载都大于一个内核。
除了OS级别的度量之外,收集应用程序特定的性能基准,并随着时间的推移对它们进行趋势化。一般例子:
要将OS指标放到上下文中,就必须对系统所做的有用工作进行一些度量。您的系统似乎在做有用的工作,即使在一个相对较高的负载平均值。与分叉炸弹不同的是,分叉炸弹将负载驱动到不可用的高级别,但作为拒绝服务攻击,没有任何用处。
https://serverfault.com/questions/1025507
复制相似问题