CPU使用率とCPU時間について理解する

こんばんは。今日は、CPU使用率とCPU時間について、調べて分かったことをまとめておこうと思います。

それではまいります。(随時追記予定です)

CPU使用率とは

  • プロセッサがプログラムによってどれだけ利用されているかを測る指標。
  • 具体的には、ある単位時間のうち、プログラムが何等かの処理を実行している時間の割合。
  • リソース(CPU)をどれだけ効率的に利用できているかの指標にもなる。
  • 単一のプログラムにより高いCPU使用率となっている場合には、処理能力が非常に多く求められている状況であり、処理の無限ループなどの欠陥が原因となっている可能性がある。

(参考文献)

CPU時間とは

  • あるプログラムがCPUを使って処理を行った時間の長さ
  • I/O待ちや、プログラム開始の待ち時間等が含まれない、純粋なCPU使用時間を指すため、単一のプログラムが必要とするCPUの量を計測するのに適している。
  • 2つの機能的に同一のアルゴリズム(ソーティングなど)の効率性を計測するために用いる。
  • 上記で、CPU時間がかからない処理の方が効率が良いといえる。
  • CPUコアが複数あって、並列計算した場合などは、CPU時間=所要時間×コア数となる(これを総CPU時間ともいう)
  • CPU時間はさらにユーザCPU時間とシステムCPU時間に分けられる。
  • ユーザCPU時間はプログラム自体のコードの実行に費やされた時間
  • システムCPU時間はプログラムが発行したシステムコールなどでOSコードが実行された時間

(参考文献)

  • https://e-words.jp/w/CPU%E6%99%82%E9%96%93.html
  • https://en.wikipedia.org/wiki/CPU_time

CPU時間とCPU使用率の関係

  • CPU使用率=CPU時間/利用可能時間
  • 例えば、100秒のうちCPU時間が80秒だった場合、80%

https://stackoverflow.com/questions/28240978/how-to-interpret-cpu-time-vs-cpu-percentage

プロセスのCPU使用率・CPU時間を実際に確認する方法

工事中

CPU時間とCPU使用率にまつわる議論

CPU使用率が高いことは問題?

必ずしも問題ではない。むしろリソースを効率的に使えていると解釈できる。ただし、100%を超えると、処理時間に影響を及ぼすので、適正な値を見極める必要あり。

オンプレサーバだと最初に想定処理量から必要なCPUスペックを見積もる必要があるけど、クラウドだと、初期の見積もりは少なからず必要なものの、CPU使用率が一定量を超えると自動的にスケールアウトするような構成を簡単に取れる。このときには、スケールアウトの閾値の設計が必要。(あまりにも低いCPU使用率を閾値にしてスケールアウトすると、むしろリソースを効率的に使えていないことになるので)

https://qiita.com/zd6ir7/items/2cb39f55f3b15af79f6f

工事中

おしまい

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US

Yuu113
初めまして。Yuu113と申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。