以下のLinux Red-Hat VMサーバーの詳細があります(各サーバーにはDockerコンテナで実行されているアプリケーションが含まれています)。
Linux redhat version - 7.6
number of CPU cores - 16
低いCPUアイドル率のためにコアが不十分であると疑われる。40%-50% 時には、CPU負荷平均が通常の範囲内にあるにもかかわらず、40%未満です。9-12
以下のテストを実施しました。
from sar -u 2 5
Linux 3.10.0-862.el7.x86_64 (bigdata-machine03.kondel.com) 08/21/2022 _x86_64_ (16 CPU)
02:14:07 PM CPU %user %nice %system %iowait %steal %idle
02:14:09 PM all 36.82 0.00 14.64 0.57 0.00 47.97
02:14:11 PM all 35.50 0.00 16.01 0.82 0.00 47.68
02:14:13 PM all 21.52 0.00 10.90 0.69 0.00 66.89
02:14:15 PM all 21.45 0.00 10.96 0.63 0.00 66.97
02:14:17 PM all 22.28 0.00 10.15 0.78 0.00 66.78
Average: all 27.51 0.00 12.53 0.70 0.00 59.27
vmstat 1 21
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
6 0 269568 26388424 0 29302496 0 0 0 419 0 0 19 9 72 0 0
5 0 269568 26257112 0 29424172 0 0 0 131098 9739 4328 24 8 67 1 0
5 0 269568 26124560 0 29548576 0 0 0 66573 8790 2414 24 8 67 0 0
5 0 269568 25992844 0 29671288 0 0 0 146499 8701 2124 23 9 67 1 0
5 0 269568 25861804 0 29795272 0 0 0 114700 9146 4341 23 8 67 1 0
5 0 269568 25726984 0 29924684 0 0 0 131127 10060 4263 24 8 67 1 0
5 0 269568 25592612 0 30049624 0 0 0 131098 9127 3958 24 8 67 1 0
5 0 269568 25462696 0 30172108 0 0 0 131369 10000 4500 24 8 67 1 0
5 0 269568 25325716 0 30297560 0 0 0 98332 8723 2942 24 8 67 1 0
6 0 269568 25181400 0 30436356 0 0 0 98324 8585 2740 24 7 68 1 0
6 0 269568 25044572 0 30560928 0 0 0 163876 9983 4029 24 8 67 1 0
4 1 269568 24903352 0 30693816 0 0 0 157720 8468 3220 25 8 67 1 0
6 0 269568 24770240 0 30819368 0 0 0 71702 9439 5035 24 7 67 1 0
5 0 269568 24633396 0 30946824 0 0 0 131115 8974 3863 25 7 67 1 0
5 0 269568 24508664 0 31064812 0 0 0 163873 9523 4525 23 8 67 1 0
4 1 269568 24366044 0 31196540 0 0 0 65547 8381 2131 24 8 67 0 0
5 0 269568 24243064 0 31314580 0 0 0 98326 8936 4413 24 7 68 1 0
5 0 269568 24115296 0 31436264 0 0 0 163872 9698 4941 23 7 68 2 0
5 0 269568 23974156 0 31569112 0 0 0 163876 9298 4221 24 7 68 2 0
4 1 269568 23835196 0 31700900 0 0 0 65546 8262 2000 25 7 67 0 0
15 0 269568 22972552 0 31833020 0 0 0 131101 32338 4679 55 25 20 1 0
# uptime
14:14:31 up 149 days, 23:06, 1 user, load average: 9.31, 9.32, 9.48
iostat
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 14.36 0.58 6648.36 7483539 86140749988
dm-0 0.27 0.12 2.10 1503954 27251899
dm-1 0.10 0.19 0.20 2427092 2539536
dm-2 14.18 0.27 6646.06 3449263 86110943670
追加のCPUコアを追加するには、どのRedhatシリーズを考慮する必要がありますか?
答え1
私が知る限り、vmstatで平均6〜7個のプロセスが実行されています。キューuptime
には9つの実行中のプロセスがあります。 12のプロセスを続行すると、将来のアップグレードについて考える可能性があります。
CPU使用量は少なくなります。最初に75%に達すると、今後は50%と考えることが賢明でしょう。
注意すべきことは中断です。 >100Kは私には多すぎるただし、これは実行中のプログラムによって大きく異なります。しかし、この方向に掘り下げてみてください。
答え2
/proc/interrupts
報告するためにRESラインを個人的に監視します。再スケジュールされた割り込みの数。 (CPU固定なし)
これらの割り込みは、CPUが使用中であり、同じスケジューラキューに設定されている他のジョブ(irqスレッドのirq処理を含む)も(同じCPUで)実行できるたびに発生します。そして、スケジューラは、移行中のジョブを実行するために使用可能なCPUを見つけようとします。
したがって、RESが少ないほど、CPUジョブキューに複数の実行可能ジョブがある回数が減るか、スケジューラが移行のために中間CPUを見つけるために管理する回数が減ります。
もちろん、後者はCPUの数を増やすことがワークロードに役立つことを確実に伝えます。
決定を下すには、最小限のワークロード(ワークロードが実行するジョブの最小数に相対的)で始まり、システムをベンチマークし、次第に負荷を増やし、RES(合計)の増加を観察することをお勧めします。
曲線RES = f(1秒あたりの作業数)が大幅に増加しない場合...