使用 Libvirt 获取 Docker 容器的 CPU 和内存使用率
使用 Libvirt 获取 Docker 容器的 CPU 和内存使用率
本文将指导您使用 Libvirt Python 库获取 Docker 容器的 CPU 和内存使用率。
获取 CPU 使用率
以下代码片段演示了如何使用 libvirt.Domain.getCPUStats() 函数获取 Docker 容器的 CPU 使用率:pythonimport libvirt
conn = libvirt.open()if conn is None: print('无法连接到 hypervisor') exit(1)
domains = conn.listAllDomains()
for domain in domains: stats = domain.getCPUStats(True) print(f'域名: {domain.name()}') print(f'CPU 使用率: {stats[0]['cpu_time'] / 1000000000.0} 秒')
此代码将执行以下操作:
- 连接到 hypervisor。2. 获取所有正在运行的域(虚拟机)。3. 遍历每个域并使用
getCPUStats()函数获取其 CPU 统计信息。4. 打印域的名称和 CPU 使用率。
获取内存使用率
以下代码片段演示了如何使用 libvirt.Domain.memoryStats() 函数获取 Docker 容器的内存使用率:pythonimport libvirt
conn = libvirt.open()if conn is None: print('无法连接到 hypervisor') exit(1)
domains = conn.listAllDomains()
for domain in domains: mem_stats = domain.memoryStats() print(f'域名: {domain.name()}') print(f'内存使用量: {mem_stats['actual'] / 1024} MB') print(f'当前内存使用量: {mem_stats['rss'] / 1024} MB')
此代码将执行以下操作:
- 连接到 hypervisor。2. 获取所有正在运行的域(虚拟机)。3. 遍历每个域并使用
memoryStats()函数获取其内存统计信息。4. 打印域的名称、总内存使用量和当前内存使用量(RSS)。
注意:
mem_stats['actual']表示分配给虚拟机的总内存大小。*mem_stats['rss']表示虚拟机当前使用的内存大小(驻留集大小)。* 这两个值均以 KB 为单位,因此我们将它们除以 1024 以转换为 MB。
通过使用这些代码片段,您可以轻松地监控 Docker 容器的 CPU 和内存使用情况。
原文地址: https://www.cveoy.top/t/topic/fZZW 著作权归作者所有。请勿转载和采集!