MOテクノロジー

技術をメモしていくブログ

【Linux】CPUからロードアベレージの数値を検討してみた

今担当している運用の仕事は、サーバのロードアベレージ閾値を越えるとアラートが飛ぶようになっている。
ある時間帯に動くジョブが集中しており、その時に閾値を超えてしまうため、毎日アラートが飛んでくる。
そこで、今の閾値は適切かどうか、どの程度まで上げるべきかを検討した。(ジョブの時間をずらせば閾値越えは回避できそうだが、今回はやらないことになった。)

CPUの情報を調査

ロードアベレージの値を検討するに当たって、CPU数やCore数が重要になるとわかった。
今回のサーバのCPUを調べるとこのような値。(CentOS7)

# 物理CPUの数
[root@server ~]# grep physical.id /proc/cpuinfo | sort -u | wc -l
8
# CPUごとのコア数
[root@server ~]# grep cpu.cores /proc/cpuinfo | sort -u
cpu cores       : 1
# 論理プロセッサーの数(OSから見えるCPUの数?)
[root@server ~]# grep processor /proc/cpuinfo | wc -l
8

これから読み取れることは、1つのcoreが乗っているcpuが8個動いている。ということらしい。(ちょっと自信ない)

ロードアベレージはどの程度だといいのか

当然だけど低ければ低いほどいい。
そして1以下ならまず問題ない数値のようだ。
1CPUの場合、単純にロードアベレージの値が1以下ならOKとなるが、今回のように8CPUの場合は考え方が少し違って、(ldavg / CPU数)が1以下であればOK。
つまり、今回の場合はロードアベレージが8以下であれば問題ないと言える。
ちなみに今のアラートの閾値は8となっている。多分前に設定した人も同じような考えでこの設定にしたんだろう。

じゃあ上限としてどの程度まで許容できるのか?
ここがしっかりとした情報が見つからなくてなかなか難しい。
今回の場合はしっかりとした根拠はないが、経験的な数値として既存の設定の2倍の16を閾値とした。

参考

CPUのCOREコアとスレッドの違いって何? – パソコン初心者日記

物理 CPU、CPU コア、および論理 CPU の数を確認する - Red Hat Customer Portal

Load Average(ロードアベレージ)とCPU数 - tweeeetyのぶろぐ的めも

マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー