Docker资源使用率可以通过以下命令进行验证:
使用 docker stats 命令查看容器的实时资源使用情况,例如:
docker stats
该命令会展示容器的CPU、内存、网络IO、磁盘IO等各项资源的使用情况。2. 使用 docker stats 命令结合 --no-stream 参数导出容器的资源使用情况快照,例如:
docker stats --no-stream > stats.txt
该命令将容器的资源使用情况快照导出到 stats.txt 文件中,可以在需要时查看。3. 使用 top 命令查看容器的资源使用情况,例如:
docker exec -it top
该命令会展示容器中运行的进程信息,包括CPU、内存等资源的使用情况。
- #!/bin/bash
-
- cd `dirname $0`
-
- hostname=$(hostname)
- ip=$(/sbin/ifconfig -a | grep inet | grep -v 127.0.0.1 | grep -v inet6 | grep -E "10|192" | awk '{print $2}')
-
- # 获取docker的资源使用情况
- ids=`docker ps | awk '{print $1}'`
-
- if [ -n "${ids}" ]; then
- index=0
- for id in ${ids}
- do
- # 删除第一行的数据i
- if [[ $index == 0 ]]; then
- index=1
- continue
- fi
-
- # docker 资源使用率
- resource=`docker stats --no-stream | grep $id`
- echo "$resource"
-
- # 名称
- docker_name=`echo $resource | awk '{print $2}'`
- echo "docker名称:$docker_name"
-
- # cpu使用率
- cpu_rate=`echo $resource | awk '{print $3}'`
- echo "CPU使用率:$cpu_rate"
-
- # 内存使用
- mem_used=`echo $resource | awk '{print $4}'`
- mem_total=`echo $resource | awk '{print $6}'`
- mem_rate=`echo $resource | awk '{print $7}'`
- echo "内存: 总共$mem_total,已用$mem_used,使用率$mem_rate"
-
- # 网络
- net_input=`echo $resource | awk '{print $8}'`
- net_output=`echo $resource | awk '{print $10}'`
- echo "网路流量:流入$net_input,流出$net_output"
-
- # 磁盘读写
- block_in=`echo $resource | awk '{print $11}'`
- block_out=`echo $resource | awk '{print $13}'`
- echo "磁盘:写$block_in,读$block_out"
-
- # 进程数量
- pids=`echo $resource | awk '{print $14}'`
- echo "进程数:$pids"
-
- # 逻辑验证,发送告警
-
- done
- fi