采集容器内存并写到excel
# coding=utf-8
import os
import commands
import re
from pyExcelerator import * def execute(cmd):
status, output = commands.getstatusoutput(cmd)
if status != 0:
raise Exception('status is %s, output is %s' % (status, output))
return output def get_docker_name():
infos = execute("docker ps |awk '{print $1, $NF}'").split('\n')
regex = re.compile('\s+')
id_name = {}
for info in infos:
docker_id, docker_name = regex.split(info)
id_name[docker_id] = docker_name
return id_name def get_docker_mem():
regex = re.compile('\s+')
ret = execute('docker stats --no-stream').split('\n')
result_name = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'docker_res.xlsx')
id_name = get_docker_name()
w = Workbook()
ws = w.add_sheet('node_1_data')
ws.write(0, 0, 'docker_id')
ws.write(0, 1, 'docker_name')
ws.write(0, 2, 'mem(MB)')
index = 1
for docker in ret:
info = regex.split(docker)
docker_id = info[0]
mem = info[2]
unit = info[3]
if unit.startswith('G'):
mem = float(mem) * 1024
if unit.startswith('K'):
mem = float(mem) / 1024
try:
mem = float(mem)
except:
pass
name = id_name[docker_id]
ws.write(index, 0, docker_id)
ws.write(index, 1, name)
ws.write(index, 2, mem)
index += 1
w.save(result_name) if __name__ == '__main__':
get_docker_mem()
采集容器内存并写到excel的更多相关文章
- 通过进程id找到进程对应的容器并统计每个进程的内存占用写到excel里
# coding=utf-8 import re import os import commands import json import psutil from pyExcelerator impo ...
- Docker容器内存监控
linux内存监控 要明白docker容器内存是如何计算的,首先要明白linux中内存的相关概念. 使用free命令可以查看当前内存使用情况. [root@localhost ~]$ free tot ...
- 【NPOI】通过NPOI从内存流中创建EXCEL
一言不合就开始帖代码 XSSFWorkbook workbook = new XSSFWorkbook(); //创建工作簿 XSSFSheet sheet = (XSSFSheet)workbook ...
- docker限制容器内存使用上限
记录一个项目开发部署中遇到的一个问题,处理经验总结. 问题: 我们的项目使用的是Angular6 + Spring boot + redis + mycat结构,项目部署在容器里面,项目正式部署以后, ...
- Docker 容器内存限制 - 八
Docker 内存限制: centos /bin/bash 查看容器实例 内存限制: 限制容器内存大小:docker run -d -i -t -m 256M --memory-swap 512M ...
- docker容器内存占用 之 系统cache,docker下java的内存该如何配置
缘起: 监控(docker stats)显示容器内存被用完了,进入容器瞅了瞅,没有发现使用内存多的进程,使用awk等工具把容器所有进程使用的内存加起来看看,距离用完还远了去了,何故? 分析: 该不会d ...
- excel导出的时候从程序后台写到excel里的是文本,所以无法在excel中计算怎么办?
文章引用自:http://www.cnblogs.com/rayray/p/3414452.html excel导出的时候从程序后台写到excel里的是文本,所以无法在excel中计算怎么办? 需要导 ...
- 记录python接口自动化测试--把测试结果写进excel文件(第九目)
python中一般使用xlrd(excel read)来读取Excel文件,使用xlwt(excel write)来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用xlrd读取 ...
- Java将数据写进excel
Java将数据写进excel Java将数据写进excel class User { private String name ; private String password; public Use ...
随机推荐
- UE4联网游戏中让不同的客户端生成不同的Pawn类型
效果描述 一个服务器,两个客户端,让他们连接后分别生成不同的Pawn,并且在不同的位置生成. 意义 这是个项目需求,但是我发现如果能够彻底理解并制作出这个功能,会对虚幻4内置的网络功能以及一些重要的G ...
- Elasticsearch的聚合操作
ES的聚合: Metrics 简单的对过滤出来的数据集进行avg,max等操作,是一个单一的数值. bucket 可以理解为将过滤出来的数据集按条件分成多个小数据集,然后Metrics会分别作用在这些 ...
- [CSP-S模拟测试]:连连看(图论+容斥)
题目传送门(内部题74) 输入格式 输入文件$link.in$ 第一行三个整数$n,m,k$,之间用空格隔开,$n,m$表示地图行数和列数,$k$表示每个方块周围相邻的位置(至多有$4$个,至少有$2 ...
- chrome flash 自动暂停问题
chrome flash 尺寸小于398*298时,只要宽和高某一个值小于对应值就会自动暂停,出现这个圆形的播放按钮.(估计是当广告处理了...) 将尺寸调大即可.
- 构建嵌入式Linux交叉编译工具链
开源交叉编译工具链制作方法汇总: 1) 使用crosstool/crosstool-ng生成 2) 使用buildroot生成 ARM交叉编译工具链说明: 1) arm-linux-gcc是一个集合命 ...
- npm 中的 --
-- 命令告诉cli-parser停止向下解析, --后面的内容会传给命令行作为命令行参数 文档地址: https://docs.npmjs.com/misc/config.html
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第3节 Random类_8-Random概述和基本使用
用来产生随即数字 构造方法有一个是为空的 每次运行数值都不一样
- Dnsmasq 安装配置
Dnsmasq 官网 http://www.thekelleys.org.uk/dnsmasq/doc.html Unbuntu 安装 Dnsmasq 参见https://help.ubuntu.c ...
- 重置Docker里的gitlab管理员用户密码
1.docker ps 找出容器的唯一标识 2.docker exec -it ad9b8c3e20f0 /bin/bash 进入Docker容器运行环境 3.开始重置gitlab管理员用户密码 ...
- oracle--优化思路