采集容器内存并写到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 ...
随机推荐
- nginx 缓存设置
浏览器缓存原理 浏览器缓存 HTTP协议定义的缓存机制(如:Expires:Cache-control等) 2.浏览器无缓存 3.客户端有缓存 校验过期机制 校验是否过期 ...
- Android - Gradle架构中使用的“.so”库
Android使用Gradle架构的Android应用,需要对.so库做特殊的处理,因为会找不到,就会导致编译正确,使用错误:常见的使用情况是根据不同的cpu,有不同的库,包括:armeabi,mip ...
- 3D Computer Grapihcs Using OpenGL - 10 Color Buffer
本节我们将尝试利用三角形制作一个“走马灯”效果. 一个三角形如图示方式,从左向右依次移动. 先看一下代码: MyGlWindow.cpp #include <gl\glew.h> #inc ...
- 谷歌 AXURE RP EXTENSION拓展问题
我们打开某种文件页面是 会提示我们下载 AXURE RP EXTENSION 拓展. 其实我们可以直接用ie浏览器打开即可,不用下载
- java创建对象方法列表
引用 不用构造方法也能创建对象 前言 java中对象创建的方法主要包括,1,使用new关键字,2.使用clone方法,3.反射机制,4.反序列化.其中1,3都会明确的显式的调用构造函数.2是在内存上对 ...
- spark 学习网站和资料
spark 官网首页 https://spark.apache.org/ spark 官网文档 spark scala API 文档 https://spark.apache.org/docs/lat ...
- SQL优化—nested loop优化
跑批时间段22:00-23:00,生成AWR报告 分析sql:SQL_ID='5hfw4smzs2pqw' 执行计划: SQL> select * FROM TABLE(DBMS_XPLAN. ...
- 2013 AAAI: Uncorrelated Lasso
Si-Bao Chen, Chris Ding, Bin Luo and Ying Xie. Uncorrelated Lasso. AAAI, 2013. 第一作者是安徽大学陈思宝副教授. 第二作者 ...
- Ajax的封装。
封装 Ajax 因为Ajax 使用起来比较麻烦,主要就是参数问题,比如到底使用GET 还是POST:到 底是使用同步还是异步等等,我们需要封装一个Ajax 函数,来方便我们调用. 封装支持接收来 ...
- git全套详细教程
git安装 首先,我们要去git的官网下载一个git安装包,双击到无关紧要的步骤我就不详细描述了,直接介绍我们关键的步骤. 选择git包含的内容和打开方式 选择都很清晰,具体情况我不是很清楚,不过选择 ...