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
优点:
运行方便,适合快速了解容器运行状态
缺点:
输出数据有限,都是实时数据,无法反应历史变化和趋势

浙公网安备 33010602011771号