🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1966閲覧

(load average/プロセッサー数)が0.7~0.8以上の場合、CPUまたはI/O負荷が高いと判断していいでしょうか。

taku0000001

総合スコア3

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

3クリップ

投稿2021/02/17 12:39

背景

Linuxサーバの運用保守業務をしている関係で、
linuxの性能分析について勉強しております。

下記サイトを拝見し、load averageについて気になったので質問させていただきたく思います。

○ Linux Performance Analysis in 60,000 Milliseconds
https://netflixtechblog.com/linux-performance-analysis-in-60-000-milliseconds-accc10403c55

自分の中では答えにたどりつけてそうな感じがするのですが、勉強中の身であるため確証が持てず、有識者にご回答いただけると助かります。

上記の質問は以下の解釈をもとに計算しています。

○load averageについて
・load averageは実行中・実行待ちの状態(CPUを使っている・CPU待ち)のプロセスと、割り込み不能な待ち状態(大抵I/O待ち)のプロセスの総数
・OSから見えるCPU数=1、load average=1の時、100%のCPU使用率を示す
・OSから見えるCPU数=8、load average=8の時、100%のCPU使用率を示す
・OSから見えるCPU数=プロセッサー数(grep 'processor' /proc/cpuinfo | wc -l)
・プロセッサー数=物理CPU数×CPU当たりのコア数×(ハイパースレッディング技術によって2倍 使ってれば)

○0.7~0.8という数字について
私の業務環境だと、ファイルシステム使用率などは大抵80%を超えると障害として発報するような監視にしているため

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

(load average/プロセッサー数)が0.7~0.8以上の場合、CPUまたはI/O負荷が高いと判断していいでしょうか。

CPUやI/O負荷が高い事がLoadAverage上昇の原因になっていることも多いため、大きく間違っているとまでは言えません。
しかし、LoadAverageはCPUやI/O負荷以外にも様々な要因で上がるため、必ずしもCPUまたはI/O負荷が高いとは限りません。

例えば、DBサーバがWEBサーバと別にあるwebアプリケーションにおいて、
WEBサーバがDBに対してとても重たいクエリや結果が大きなクエリを投げた場合、DBからのレスポンス待ちやデータ転送待ちによってWEBサーバのLoadAverageは上がります。

この際、WEBサーバのCPU使用率やI/Oの負荷は殆ど変化しません。

そのため、
どこがボトルネックになっているかは不明であるがシステム全体として処理に対するレスポンスが重くなりつつある状態あたりが妥当な表現かと思います。

○0.7~0.8という数字について
私の業務環境だと、ファイルシステム使用率などは大抵80%を超えると障害として発報するような監視にしているため

個人的な考えとしては、
LoadAverageはCPU使用率やI/O負荷と比較すると抽象度の高い指標なので、
閾値の設定についても抽象度の高い(ビジネス/業務/システム構成)要件との兼ね合わせで設計する必要があると考えて設計しています。

なので、
「LoadAverageが0.7-0.8/コアの場合にはアラートを発報すべきか?閾値として正しいか?」
という質問であれば、回答としては
「システム構成や要件に依存するので回答できない」
となってしまいます。

例えば、
LoadAverageが1.0/コアを瞬間的にでも超えたらクリティカルな状況になるシステム
であれば、0.7と言わずにもっと低いところでアラートを発報した方が良いでしょうし、
普段は0.2くらいだけどピーク時には0.9くらいまでは上がる。短期間であれば1.0を超えることも(予算的な理由で)織り込み済みのシステム
や、
アラートが頻発することによって対応コストが上がりすぎたり、アラートを無視するような運用になってしまっては困る場合
であれば、1.0を一定時間(通常の運用では想定されない時間)超えたらアラートを発報すると言った閾値の設定が必要になってきます。

投稿2021/02/17 21:19

tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

taku0000001

2021/02/18 03:14

ご回答頂きありがとうございます。 load averageが結局どれくらいだとまずいのかという目安について、いろいろとコミュニティサイトや書籍を見てきたのですが、具体的な数字がなく困っておりました。ご回答頂いた妥当な表現がしっくりきましたので、こちらをベストアンサーとさせていただきます。 load averageを元にアラート通知機能を実装するようなシステムはほぼないものと認識してますが、load avarageを論理コア数で割った数値が高く、高負荷が想定されるタスクが予定されていない場合は、もっと詳細な性能分析を行う必要があると理解しました。
tanat

2021/02/18 03:22

> load averageを元にアラート通知機能を実装するようなシステムはほぼないものと認識してますが 誤解させてしまっていたらすみません。 閾値の精査は必要ですが、監視項目としては標準的に含まれている項目ではあるので発報自体はされていることの方が多いと思います。 > load avarageを論理コア数で割った数値が高く、高負荷が想定されるタスクが予定されていない場合は、もっと詳細な性能分析を行う必要があると理解しました。 その通りだと思います。
taku0000001

2021/02/18 10:28

> 誤解させてしまっていたらすみません。 閾値の精査は必要ですが、監視項目としては標準的に含まれている項目ではあるので発報自体はされていることの方が多いと思います。 →「監視項目としては標準的に含まれている項目ではある」のですね、、認識が間違っていました。ご回答ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問