LinuxサーバーにさらにCPUコアが必要かどうかを確認する方法

LinuxサーバーにさらにCPUコアが必要かどうかを確認する方法

以下の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秒あたりの作業数)が大幅に増加しない場合...

関連情報