LoginSignup
4

More than 3 years have passed since last update.

dockerコンテナ リソース変化とメトリクス確認(docker stats, htop)

Last updated at Posted at 2020-01-15

Dockerのリソース変化

dockerを0から触れていまだ勉強中なので記事内に間違った内容などがあれば編集リクエストを送っていただけるととても助かります:bow:

cpu割り当て時間

dockerコンテナのcpu割り当て時間は基本的に100%で割り振られ,そのコアに割り当てられたコンテナの個数で決まる. なので1つだけコンテナを立てるとcpuの割り当て時間は100%になってしまう.
要するに同じコアに3つコンテナが建てられたら1つあたりの割り当て時間は、100/3で33.333...%になるらしい.

cpuのコアの指定には--cpuset-cpus
cpu割り当て時間の変更には--cpusを使い変更.
以下の例は起動中のコンテナのcpuコアを1にして割り当て時間を50%にする場合です.

docker container update --cpuset-cpus=0 --cpus="0.5" <変更したいコンテナID>

メモリ割り当て

メモリの割り当て変更には, -mを使います.
以下の例は, 起動中のコンテナのメモリ容量を100MBに制限する例です.

docker container update -m 100m <変更したいコンテナID>

制限したいメモリ容量の単位は、b(バイト)k(キロバイト)m(メガバイト)g(ギガバイト)が使えます.

コンテナメトリクス

コンテナのメトリクスを確認するうえで手っ取り早いのは
- docker stats
- htop
個人的には、この2つだと思います...
(コンテナのメトリクス確認なのでデータ取得にはdata dogやelasticsaerchを入れたほうが楽)

docker stats

docker statsを実行するだけで起動中のコンテナの状態を一目で確認することができます.

docker stats
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT   MEM %               NET I/O             BLOCK I/O           PIDS
e7c6f7cd0153        magical_elbakyan    9.84%               50.67MiB / 100MiB   50.67%              9.97kB / 0B         341MB / 807MB       1
7d8cddfc7d9c        nervous_jones       50.08%              52.11MiB / 100MiB   52.11%              9.97kB / 0B         8.24GB / 8.91GB     1
d7d25131fa19        confident_kilby     100.33%             53.11MiB / 100MiB   53.11%              10.2kB / 0B         3.87TB / 10.7TB     1
docker stats 意味
cpu% cpu割り当て時間
MEM use メモリ使用量
MEM% メモリ使用率
NET I/O ネットワークI/O
BLOCK I/O 入出力中の待機I/O

htop

htopはdocker statsとは違い実行したマシンのプロセスがすべて表示されます.
htopで実行
キャプチャ.PNG

cpuの状態とメモリ, swap, load averageが一目で見れてCPU・メモリ使用量で並び変えもできるので マシン全体でコンテナがどう動いているかの確認に向いてると思います.

htopステータス 意味
PID プロセスID
NI プロセス優先度
VIRT 仮想メモリ
RES 物理メモリ
SHR プロセスと共有されるメモリ
S プロセス起動状態
CPU% cpu使用率
MEM% メモリ使用率
TIME+ プロセス起動時間

参考文献

この記事は以下の情報を参考にして執筆しました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4