上位c - CPU使用率が200%を超えるとクラッシュしますか?

上位c - CPU使用率が200%を超えるとクラッシュしますか?

あなたの経験に基づいていくつかのアドバイスをしたいと思います。私の主な関心事は、コンピュータサーバーがクラッシュすることを本当に望んでいないことです。

問題は、私がLinuxコンピュータサーバー(スーパーコンピュータ?おそらく)でプログラムを実行していることです。私が実行しているプログラムには、使用できるスレッドを指定する機能があります。私は15個のスレッドを使いたいと指定しました。

私が使用しているコンピュータサーバーには、約20以上のプロセッサ(6コアIntel Xeon CPU)があります。上のcで私が使用しているプログラムが実行されていることがわかります。

%CPU
190.7%

そのため、上位 c(1) を確認し、以下は出力です。

Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  : 95.7%us,  0.3%sy,  0.0%ni,  0.0%id,  3.6%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu2  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.3%us,  0.3%sy,  0.0%ni, 99.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu8  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu9  :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu10 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu11 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu12 : 96.0%us,  0.7%sy,  0.0%ni,  0.0%id,  3.3%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu13 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu14 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu15 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu16 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu17 :  0.0%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu18 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu19 :  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu20 :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

CPU使用率はCPUによって異なります。たとえば、CPU20が90%に達し、CPU1が0%に戻ることがあります。

CPUを190%使用したため、コンピュータサーバーがクラッシュする可能性はありますか?

答え1

さまざまなツールとシステムは、CPUの割合をさまざまな方法で報告します。 CPUの負荷について考えるより良い方法は、負荷の観点から見ることです。次のような過負荷の労働者システムを検討してください。

# w 
 02:22:31 up 221 days, 11:06,  1 user,  load average: 9.87, 9.50, 7.25
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
stephan  pts/0    173.13.169.18    02:22    0.00s  0.44s  0.00s w


~$ cat /proc/cpuinfo |grep processor
processor   : 0
processor   : 1

つまり、1分負荷は9.87、5分負荷は9.50、15分負荷は7.25です。 「ロード」番号は、このコンピュータがタスクを実行するために割り当てたプロセッサの数を表し、cpuinfoコマンドはタスクを実行するために必要な物理プロセッサの数を示します。 CPUが12個の場合、この負荷レベルはまったく問題になりません。

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                
11579 app       20   0  263m  97m 4104 R   22  1.3   0:00.85 ruby                                                                                   
11586 app       20   0     0    0    0 Z   20  0.0   0:00.62 ruby <defunct>                                                                         
11589 app       20   0  262m  96m 3884 S   18  1.3   0:00.53 ruby                                                                                   
11592 app       20   0  260m  95m 3000 R   17  1.3   0:00.50 ruby                                                                                   
11600 app       20   0  260m  95m 2744 R   15  1.3   0:00.45 ruby                                                                                   
11595 app       20   0  260m  95m 2744 R   13  1.3   0:00.39 ruby                                                                                   
11598 app       20   0  262m  95m 3096 R   12  1.3   0:00.35 ruby                                                                                   
11604 app       20   0  258m  93m 2744 R   10  1.3   0:00.30 ruby                                                                                   
11607 app       20   0  257m  92m 2496 R    8  1.2   0:00.25 ruby                                                                                   
11610 app       20   0  256m  91m 2560 S    4  1.2   0:00.11 ruby

そうすれば、CPUがプロセス間で分かれているのがわかります。これにより、キュー内のジョブは、CPUを使用する前にCPUがアイドル状態になるまで待つ必要があります。

答え2

%CPUは1つのCPUに基づいて測定されるため、200%は2つのCPUがフルタイムで動作することを意味します。すべては、保持しているCPU(コア、スレッド)の数によって異なります。利用可能なリソースの約70%以上を使用している場合、問題が発生します。ただし、CPUだけが唯一の指標ではなく、I / Oも重要です。懸念がある場合はsysstatsar)をインストールして設定した後、出力を理解してください。

関連情報