使用 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} 秒')

此代码将执行以下操作:

  1. 连接到 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')

此代码将执行以下操作:

  1. 连接到 hypervisor。2. 获取所有正在运行的域(虚拟机)。3. 遍历每个域并使用 memoryStats() 函数获取其内存统计信息。4. 打印域的名称、总内存使用量和当前内存使用量(RSS)。

注意:

  • mem_stats['actual'] 表示分配给虚拟机的总内存大小。* mem_stats['rss'] 表示虚拟机当前使用的内存大小(驻留集大小)。* 这两个值均以 KB 为单位,因此我们将它们除以 1024 以转换为 MB。

通过使用这些代码片段,您可以轻松地监控 Docker 容器的 CPU 和内存使用情况。

使用 Libvirt 获取 Docker 容器的 CPU 和内存使用率

原文地址: https://www.cveoy.top/t/topic/fZZW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录