質問をすることでしか得られない、回答やアドバイスがある。

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

ただいまの
回答率

88.91%

dockerのCPU使用率がコア数を超える原因について

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 4,541

choitarou

score 112

お世話になっております。
AWS EC2(m4.large)にてdockerを使用しているのですが
CPU使用率が異常に高くなっており、原因が不明な為、ご質問させて下さい。

<現象>
dockerのCPU使用率が700%を超えている。

docker stats 'コンテナID'
CONTAINER           CPU %               MEM USAGE / LIMIT      MEM %               NET I/O               BLOCK I/O             PIDS
xxxxxxxx        756.34%             83.3 MiB / 7.798 GiB   1.04%               484.3 MB / 468.5 MB   55.59 MB / 61.15 MB   0

<環境>
AWS EC2 (m4.large)

$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    2
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
Stepping:              1
CPU MHz:               2300.130
BogoMIPS:              4663.33
Hypervisor vendor:     Xen
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              46080K
NUMA node0 CPU(s):     0,1

<質問事項>
上記に記載させて頂きました通り、コア数が1で、CPU(s)が2の為、
CPU使用率は200%となるのではと予想しておりましたが、
dockerのCPU使用率は700%を超えています。
この高い数値が何故発生するのか、原因が分からず悩んでおります。
コア数での期待値200%を突破してCPU使用率が表示されてしまう原因について
心当たりのある方は、情報をご教授頂けないでしょうか?

※EC2にてtopコマンドを打つと、EC2インスタンスのCPU使用率は100~105%程度を推移していました。
※そもそも私が200%を上限と考えていること自体が誤りなのかもしれません。その場合、docker statsで表示されるCPU使用率がどのような値を示しているのかご教授頂けると幸いです。

以上です。どうぞ宜しくお願い致します。

<追記>
以下に、追加で調査した結果を記載します。

$ docker version
Client:
 Version:      1.12.6
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   7392c3b/1.12.6
 Built:        Tue Mar  7 20:34:04 2017
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.6
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   7392c3b/1.12.6
 Built:        Tue Mar  7 20:34:04 2017
 OS/Arch:      linux/amd64

上記のように、dockerのバージョンが表示されていますが、以下のdocker(moby)のIssueが気になって
いるところです。
https://github.com/moby/moby/issues/28941
上記を見る限りでは、version1.2系であったバグ?のような気がしています。検討違いかもしれませんが。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

AWSに限った話ではないですが、Dockerコンテナに対して
CPUリソースの制限設定をしていないのではないでしょうか。
Dockerは制限指定していないと自由に使ってしまいますよ。

こちら参考になるかと思います。
Dockerコンテナで利用できるリソースや権限を制限する

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/18 22:15

    ご回答頂きありがとうございます。なるほど、たしかにCPUとメモリ指定は行っていませんでした。ベストアンサーとさせて頂き、本件はcloseさせて頂きます!明日、試してみます!駄目だったら、dockerのバージョンアップしてみますね!

    キャンセル

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

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る