docker基础之八monitor-1-ps/top/stats

当docker规模逐步变大后,可视化监控容器环境的性能和健康状态变得尤为重要

容器监控工具和方案:

docker ps/top/stats

sysdig

weave scope

cadvisor/heapster

prometheus


docker自带的监控子命令

docker container ls 和docker container ps完全一样,但更准确

[root@nas5 ~]# docker container ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
fc5e88d394bd        sysdig/sysdig       "/docker-entrypoint.…"   57 seconds ago      Up 22 seconds                           sysdig
a16675950610        httpd               "httpd-foreground"       30 minutes ago      Up 30 minutes       80/tcp              httpd
[root@nas5 ~]# docker container ls
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
fc5e88d394bd        sysdig/sysdig       "/docker-entrypoint.…"   59 seconds ago      Up 25 seconds                           sysdig
a16675950610        httpd               "httpd-foreground"       30 minutes ago      Up 30 minutes       80/tcp              httpd

  

看某个容器中运行了哪些进程

docker container top [container] 

[root@nas5 ~]# docker container top sysdig
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                11133               11117               0                   17:31               pts/0               00:00:00            bash

  

上面的命令后还可以跟上linux操作系统ps命令的参数显示特定的信息,如-au

[root@nas5 ~]# docker container top sysdig -au
USER                PID                 %CPU                %MEM                VSZ                 RSS                 TTY                 STAT                START               TIME                COMMAND
root                11133               0.0                 0.2                 4668                2808                pts/0               Ss+                 17:31               0:00                bash

  

 

VSZ (Virtual Memory Size),表明是虚拟内存大小,表明了该进程可以访问的所有内存,包括被交换的内存和共享库内存

RSS( Resident Set Size )常驻内存集合大小,表示相应进程在RAM中占用了多少内存,并不包含在SWAP中占用的虚拟内存。即使是在内存中的使用了共享库的内存大小也一并计算在内,包含了完整的在stack和heap中的内存。


如果进程A的二进制文件大小为500KB,并且链接到了2500KB的共享库,有200KB的stack/heap大小,这200KB中又有100KB位于内存中,100KB位于SWAP空间中,并且加载了1000KB的共享库和400KB的自身二进制文件。则

RSS:
400K + 1000K + 100K = 1500K

VSZ
500K + 2500K + 200K = 3200K

 

显示每个容器各种资源的使用情况 

[root@nas5 ~]# docker container stats

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
fc5e88d394bd        sysdig              0.01%               1.203MiB / 972.6MiB   0.12%               656B / 0B           26.4MB / 0B         1
a16675950610        httpd               0.01%               8.348MiB / 972.6MiB   0.86%               1.31kB / 0B         11.9MB / 0B         82

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
fc5e88d394bd        sysdig              0.01%               1.203MiB / 972.6MiB   0.12%               656B / 0B           26.4MB / 0B         1
a16675950610        httpd               0.01%               8.348MiB / 972.6MiB   0.86%               1.31kB / 0B         11.9MB / 0B         82

  

默认会显示一个实时变化的列表,cpu,mem,net io,block io


注意:容器启动时没有特别指定内存limit,stats命令会显示host的内存总量,

只显示某个容器的数据,或多个指定的容器数据,只需在后面加容器名

[root@nas5 ~]# docker container stats sysdig 

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
fc5e88d394bd        sysdig              0.03%               1.195MiB / 972.6MiB   0.12%               1.31kB / 0B         51.8MB / 0B         1

CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
fc5e88d394bd        sysdig              0.00%               1.195MiB / 972.6MiB   0.12%               1.31kB / 0B         51.8MB / 0B         1

  

小结:

docker自带监控命令ps,top,stats

优点:
运行方便,适合快速了解容器运行状态

缺点:
输出数据有限,都是实时数据,无法反应历史变化和趋势

 

posted @ 2019-09-18 17:24  larlly  阅读(418)  评论(0)    收藏  举报