我们有一组 RHEL 7.9 机器,我们使用该服务器作为 kafka 客户端生产者。
每台机器都有以下规格(DELL 物理机)
48 CORES
128G memory
在大多数机器上,我们看到非常低的 %idle(来自 sar 命令),值大约为 2-6
有时我们还会看到机器挂起几秒钟,CPU 负载平均值在 40-60 之间,但似乎没问题
所以我们唯一担心的一点是如何知道 2 - 6 的空闲是否仍然正常,或者这是我们不能允许的事情
我们可以设置在空闲时间较低时发出警报的阈值吗?但问题是如何设置阈值?
例如,我们可以将阈值定义为 10% 或 20% 吗?或者是其他值?
vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
60 0 0 65249020 3364 1082656 0 0 2 1 115 43 86 3 11 0 0
46 0 0 65240956 3364 1082656 0 0 0 0 167113 10096 92 3 5 0 0
53 0 0 65248888 3364 1082656 0 0 0 0 208360 9795 92 4 4 0 0
sar 5 5
09:46:10 AM CPU %user %nice %system %iowait %steal %idle
09:46:15 AM all 91.93 0.00 4.03 0.00 0.00 4.04
09:46:20 AM all 91.90 0.00 3.48 0.00 0.00 4.62
09:46:25 AM all 91.76 0.00 3.21 0.00 0.00 5.04
09:46:30 AM all 91.69 0.00 2.84 0.00 0.00 5.47
09:46:35 AM all 92.17 0.00 4.50 0.00 0.00 3.34
Average: all 91.89 0.00 3.61 0.00 0.00 4.50
top -bn2 | grep '%Cpu' | tail -1 | grep -P '(....|...) id,'|awk '{print "CPU Usage: " 100-$8 "%"}'
CPU Usage: 96.2%
sar -P ALL 1 1
Average: CPU %user %nice %system %iowait %steal %idle
Average: all 91.94 0.00 4.75 0.00 0.00 3.31
Average: 0 12.24 0.00 51.02 0.00 0.00 36.73
Average: 1 17.35 0.00 41.84 0.00 0.00 40.82
Average: 2 100.00 0.00 0.00 0.00 0.00 0.00
Average: 3 98.02 0.00 1.98 0.00 0.00 0.00
Average: 4 99.00 0.00 1.00 0.00 0.00 0.00
Average: 5 98.00 0.00 2.00 0.00 0.00 0.00
Average: 6 98.02 0.00 1.98 0.00 0.00 0.00
Average: 7 98.00 0.00 2.00 0.00 0.00 0.00
Average: 8 98.00 0.00 2.00 0.00 0.00 0.00
Average: 9 99.00 0.00 1.00 0.00 0.00 0.00
Average: 10 99.00 0.00 1.00 0.00 0.00 0.00
Average: 11 98.02 0.00 1.98 0.00 0.00 0.00
Average: 12 98.00 0.00 2.00 0.00 0.00 0.00
Average: 13 98.00 0.00 2.00 0.00 0.00 0.00
Average: 14 98.99 0.00 1.01 0.00 0.00 0.00
Average: 15 99.00 0.00 1.00 0.00 0.00 0.00
Average: 16 98.99 0.00 1.01 0.00 0.00 0.00
Average: 17 99.00 0.00 1.00 0.00 0.00 0.00
Average: 18 98.00 0.00 2.00 0.00 0.00 0.00
Average: 19 99.00 0.00 1.00 0.00 0.00 0.00
Average: 20 99.00 0.00 1.00 0.00 0.00 0.00
Average: 21 97.06 0.00 2.94 0.00 0.00 0.00
Average: 22 98.00 0.00 2.00 0.00 0.00 0.00
Average: 23 98.02 0.00 1.98 0.00 0.00 0.00
Average: 24 20.20 0.00 41.41 0.00 0.00 38.38
Average: 25 31.31 0.00 23.23 0.00 0.00 45.45
Average: 26 99.01 0.00 0.99 0.00 0.00 0.00
Average: 27 98.02 0.00 1.98 0.00 0.00 0.00
Average: 28 98.02 0.00 1.98 0.00 0.00 0.00
Average: 29 98.02 0.00 1.98 0.00 0.00 0.00
Average: 30 98.99 0.00 1.01 0.00 0.00 0.00
Average: 31 98.02 0.00 1.98 0.00 0.00 0.00
Average: 32 98.99 0.00 1.01 0.00 0.00 0.00
Average: 33 98.02 0.00 1.98 0.00 0.00 0.00
Average: 34 98.02 0.00 1.98 0.00 0.00 0.00
Average: 35 99.00 0.00 1.00 0.00 0.00 0.00
Average: 36 97.06 0.00 2.94 0.00 0.00 0.00
Average: 37 98.00 0.00 2.00 0.00 0.00 0.00
Average: 38 97.06 0.00 2.94 0.00 0.00 0.00
Average: 39 98.99 0.00 1.01 0.00 0.00 0.00
Average: 40 98.00 0.00 2.00 0.00 0.00 0.00
Average: 41 98.00 0.00 2.00 0.00 0.00 0.00
Average: 42 98.99 0.00 1.01 0.00 0.00 0.00
Average: 43 98.00 0.00 2.00 0.00 0.00 0.00
Average: 44 98.00 0.00 2.00 0.00 0.00 0.00
Average: 45 98.99 0.00 1.01 0.00 0.00 0.00
Average: 46 98.00 0.00 2.00 0.00 0.00 0.00
Average: 47 98.00 0.00 2.00 0.00 0.00 0.00
uptime
09:53:23 up 2:07, 4 users, load average: 49.94, 49.17, 49.17
free -g
total used free shared buff/cache available
Mem: 125 61 62 0 1 62
Swap: 15 0 15
iostat
Linux 4.18.0-305.el8.x86_64 (dragon12) 06/29/2023 _x86_64_ (48 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
86.30 0.00 3.27 0.00 0.00 10.42
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 2.59 91.45 60.94 754657 502839
dm-0 1.95 83.37 54.04 687962 445952
dm-1 0.01 0.27 0.00 2220 0
dm-2 0.57 2.76 6.65 22810 54839
sar -B 2 5
Linux 4.18.0-305.el8.x86_64 (dragon12) 06/29/2023 _x86_64_ (48 CPU)
10:05:30 AM pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
10:05:32 AM 0.00 1.50 23815.00 0.00 43641.00 0.00 0.00 0.00 0.00
10:05:34 AM 0.00 0.00 27231.50 0.00 45495.00 0.00 0.00 0.00 0.00
10:05:36 AM 0.00 0.00 28570.50 0.00 47603.50 0.00 0.00 0.00 0.00
10:05:38 AM 0.00 0.00 27766.50 0.00 48434.50 0.00 0.00 0.00 0.00
10:05:40 AM 0.00 14.00 28007.00 0.00 48733.50 0.00 0.00 0.00 0.00
Average: 0.00 3.10 27078.10 0.00 46781.50 0.00 0.00 0
答案1
您的问题是这台机器处于超载边缘。从处理器队列的sar
输出vmstat
中可以看到,运行的进程通常比 CPU 多。而且几乎每个 CPU 的负载都超过 80%,这清楚地表明您需要扩展。
您可以通过两种方式进行扩展:
- 扩大规模 - 为这台机器添加更多 CPU(和内存)
- 扩展 - 添加另一台机器并创建 kafka 集群以分散集群中的负载。
我个人的建议是添加机器以顺利进行未来的扩展。