virsh查看虚拟机信息有哪些常用命令和参数?

virsh查看虚拟机信息的核心命令是virsh list配合不同参数查看虚拟机列表,virsh dominfo查看单台虚拟机配置,virsh domifaddr查看虚拟机IP地址,virsh dommemstatvirsh domblkstat查看资源使用情况。掌握这些命令的参数组合,就能在KVM虚拟化环境中快速定位问题、完成日常巡检。

virsh list搭建虚拟机列表的基本功

virsh list是所有信息查询的起点,它的参数设计直接决定你能看到多广的虚拟机范围。

KVM笔记12(virsh的应用)
加载中
KVM笔记12(virsh的应用)

状态过滤参数

不附加任何参数时,virsh list默认只显示当前正在运行的虚拟机,实际运维中这个默认行为不太够用,因为排查故障时需要看到所有虚拟机,包括已关闭的实例。

# 查看所有虚拟机(包含运行中和已关闭)
virsh list --all
# 只看已关闭的虚拟机
virsh list --inactive
# 查看运行中的虚拟机(默认行为)
virsh list --state-running
# 查看所有持久化虚拟机
virsh list --persistent

输出格式控制

--table--name--uuid这几个参数控制输出列的展示方式,在脚本处理时尤其有用。

# 只输出虚拟机名称,便于脚本循环处理
virsh list --all --name
# 只输出UUID
virsh list --all --uuid
# 输出表格形式(默认格式)
virsh list --all --table

值得注意的是,结合--name和管道符可以快速构建批量操作脚本,这是不少运维人员在日常工作中常用的组合方式,据Libvirt社区文档说明,virsh list支持最多同时指定两个过滤条件,但实际使用中单一条件已经能覆盖大多数场景。

常见简单示例

如果只想快速确认某台虚拟机的运行状态,直接执行virsh list --all,从STATE列就能看出runningshut offpaused等信息,这是最快的一个判断方式。

virsh查看虚拟机配置信息的常用命令及参数

从架构角度看,一台虚拟机对应一个XML描述文件,其中定义了内存、CPU、磁盘、网络等全部配置。virsh dominfovirsh dumpxml就是读取这份配置的两把钥匙。

virsh dominfo单台虚拟机的核心配置

virsh dominfo <虚拟机名称或UUID>是查看单台虚拟机基本信息的首选命令,输出内容涵盖内存、CPU、状态、自动启动配置等关键字段。

virsh查看虚拟机信息有哪些常用命令和参数?

virsh dominfo ubuntu-server

输出示例:

Id:             3
Name:           ubuntu-server
UUID:           a2b3c4d5-xxxx-xxxx-xxxx-xxxxxxxxxxxx
OS Type:        hvm
State:          running
CPU(s):         4
CPU time:       125.6s
Max memory:     4194304 KiB
Used memory:    4194304 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: none
Security DOI:   0

其中CPU time显示累计消耗的CPU时间,Max memoryUsed memory的单位是KiB(即1024字节),并非常见的MB或GB,不少刚接触虚拟化的用户在这里容易产生误解,实际上4194304 KiB换算后就是4 GB

virsh dumpxml深入查看XML配置

当需要查看虚拟机绑定的磁盘路径、网卡MAC地址、VNC端口等更底层的配置细节时,virsh dumpxml <虚拟机名称>会更全面。dominfo只展示摘要信息,而dumpxml输出完整定义。

# 查看完整XML配置
virsh dumpxml ubuntu-server
# 通过grep快速过滤关键信息(查看磁盘路径)
virsh dumpxml ubuntu-server | grep "source file"
# 查看VNC端口配置
virsh dumpxml ubuntu-server | grep vnc

virsh查看虚拟机IP地址用哪个命令

这是日常运维中出现频率较高的一个疑问,获取虚拟机IP地址有两条路径,取决于虚拟化环境是否安装了QEMU Guest Agent。

# 推荐方式:通过Guest Agent获取(虚拟机需安装qemu-guest-agent)
virsh domifaddr ubuntu-server --source agent
# 备选方式:从租约文件读取(基于NAT网络)
virsh net-dhcp-leases default

domifaddr --source agent的优势在于不依赖ARP表,即使虚拟机与外网隔离也能获取到地址,如果虚拟机没有安装Guest Agent,则--source agent会报错,此时可以尝试virsh net-dhcp-leases查看DHCP租约记录,前提是虚拟机使用NAT网络模式。

virsh查看虚拟机运行状态的资源类命令

排查性能问题时,CPU、内存、磁盘IO、网络流量这些动态数据是关键,这一类命令的输出通常都是实时采样值。

virsh命令查看CPU信息:vcpuinfo与vcpupin

virsh vcpuinfo <虚拟机名称>输出每个vCPU对应的物理CPU编号、运行时间、CPU亲和性等信息。

virsh vcpuinfo ubuntu-server

输出会按vCPU编号逐一展示,其中比较关键的字段是CPU Affinity,它显示的是当前vCPU可以运行在宿主机哪些物理核心上,多人在同一台物理机上部署虚拟机时,合理设置CPU亲和性可以有效避免资源争抢。

virsh查看虚拟机信息有哪些常用命令和参数?

virsh vcpupin可以查询特定vCPU与物理CPU的绑定关系,如果性能调优效果不理想,不妨先用这个命令确认绑定配置是否生效。

内存与磁盘性能监控:dommemstat与domblkstat

virsh dommemstat <虚拟机名称>查看虚拟机内存使用情况,输出包括actual(实际分配内存)、rss(宿主机视角的驻留内存)、availableunused,可以对比看出虚拟机内部实际内存占用率。

virsh dommemstat ubuntu-server

输出示例:

actual 4194304
swap_in 0
swap_out 0
major_fault 0
minor_fault 1638
unused 1048576
available 3932160
rss 3589120

其中rss是宿主机实际分配给该虚拟机的物理内存,如果rss长期远小于actual,说明虚拟机内存配置可能有富余,这个场景在评估“虚拟机内存是否够用”时比较实用。

virsh domblkstat <虚拟机名称>类似地查看磁盘块设备统计信息,包括读写次数和字节数。

# 查看虚拟机所有磁盘设备统计
virsh domblkstat ubuntu-server
# 指定设备(通过domblklist先查设备名)
virsh domblkstat ubuntu-server vda

配合--human参数可以将字节数自动转换为KB、MB等单位,可读性更好:

virsh domblkstat ubuntu-server --human

domstats全局性能概览

virsh domstats能一次性输出所有虚拟机的状态汇总,适合巡检脚本调用,相比逐台执行dommemstatdomblkstat,效率要高得多。

# 查看所有虚拟机的基本状态和CPU/内存统计
virsh domstats --all
# 只看某个虚拟机的所有统计项
virsh domstats ubuntu-server

较丰富,包含cpu.timevcpu.currentballoon.currentblock.countnet.count等,对性能数据有较多需求的场景,domstats的输出比单独逐个查询更全面。

实际运维中常见的查询组合方式

命令单独使用只能解决单一问题,真实故障排查时通常需要组合操作。

发现虚拟机IP与MAC地址的对应关系

先通过virsh list确认虚拟机在运行,再执行virsh domifaddr <名称>

virsh查看虚拟机信息有哪些常用命令和参数?

拿到IP地址,最后用virsh dumpxml <名称> | grep "mac address"获取MAC地址,这样就能建立起完整的IP-MAC对应关系,这是排查NAT网络内部IP冲突的标准流程。

快速定位磁盘占用异常的虚拟机

依次执行virsh list --all查看名称,再循环运行virsh domblkstat <名称> --human,从输出中对比wr_bytesrd_bytes的数值增长趋势,可以快速找出连续写入量偏大的虚拟机,实际生产环境中,不少磁盘告警问题都是通过这种方式发现的。

批量执行查询命令的小脚本

面对大量虚拟机时,用for循环配合virsh list --name可以快速产出巡检报告。

for vm in $(virsh list --name --all); do
    echo "=== $vm ==="
    virsh dominfo $vm | grep -E "State|CPU(s)|Max memory"
done

这类脚本能显著提高批量巡检的效率和便利性。

常见问题解答

virsh查看虚拟机IP地址的命令是什么?

优先使用virsh domifaddr <虚拟机名称> --source agent,前提是虚拟机内已安装并启用qemu-guest-agent服务,未安装Agent时,可以改用virsh net-dhcp-leases default查看NAT网络内的DHCP租约记录,两种方式都无法获取时,只能登录虚拟机内部通过ip addr查看。

virsh list和virsh dominfo的使用区别是什么?

virsh list面向所有虚拟机,输出的是名称、状态等汇总信息,适合了解整体环境情况;virsh dominfo面向单台虚拟机,输出该虚拟机的内存、CPU、UUID等详细配置,适合深入排查单一实例问题时使用,两者的定位关系类似于“目录”和“详情页”。

virsh查看磁盘空间用哪个命令?

virsh domblkstat <虚拟机名称>查看的是宿主机视角的磁盘读写统计数据,并非虚拟机内部可用空间,若要了解虚拟机内操作系统看到的磁盘剩余量,需要登录虚拟机操作系统内部用df -h查看,或通过virsh domfsinfo <虚拟机名称>获取文件系统信息,该命令的输出依赖Guest Agent的支撑。

掌握virsh listvirsh dominfovirsh dumpxmlvirsh domifaddrvirsh dommemstatvirsh domblkstat这组命令,再辅以--all--human--source agent这些关键参数,就能覆盖大多数KVM虚拟机信息查询场景。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/628306.html

(0)
域名解析失败怎么解决,DNS设置错误排查方法?
上一篇 2026年9月6日 15:06
企业域名邮箱共享怎么设置?,共享邮箱权限怎么管理
下一篇 2026年9月6日 15:08

相关推荐

  • 公司网络怎么接路由器怎么设置?无线路由器连接方法

    在云计算与边缘计算深度融合的今天,服务器不再仅仅是数据中心里冰冷的机柜,而是企业数字化转型的核心引擎,对于许多中小企业及初创团队而言,如何从传统的物理服务器迁移至云端,以及如何利用云端资源构建稳定、高速的内部网络架构,是IT运维中最为关键的环节,本文将基于真实的部署体验,深度测评几款主流云服务器产品,并详细解析……

    2026年6月28日
    1610
  • ActiveX Web开发怎么做?ActiveX控件开发教程步骤

    ActiveX Web开发实战指南ActiveX技术为Windows平台提供了强大的Web交互能力,尤其在需要深度集成操作系统功能的企业级应用中不可或缺,其核心在于通过COM组件模型,使开发者能够创建可嵌入网页、功能丰富的交互控件,ActiveX核心原理与应用场景ActiveX控件本质是可执行代码模块(.ocx……

    2026年2月16日
    21230
  • 服务器双网卡路由怎么配置?,双网卡同时上网设置方法

    服务器双网卡配置路由的核心,是根据业务流量特征规划静态路由表,明确数据包的出口网关,从而避免路由冲突,实现链路冗余或带宽叠加,双网卡路由配置典型应用场景很多运维刚接触双网卡时,以为插上两根网线就能自动提升速度,结果往往导致网络瘫痪,双网卡必须配合路由策略才能发挥价值,下面三个场景最能说明问题,负载均衡:提升带宽……

    2026年8月20日
    1600
  • 二维码支付开发怎么做?企业如何快速接入二维码支付接口

    打造安全、高效、可扩展的支付入口二维码支付开发不是简单生成一个图片,而是构建一套覆盖生成、解析、风控、对账、合规全链路的技术系统,其核心价值在于:降低用户支付门槛、提升商户收单效率、保障资金流转安全,以下从技术架构、安全机制、落地实施三方面展开说明,技术架构:三层解耦,支撑高并发与多场景前端生成层支持静态码(固……

    程序开发 2026年4月16日
    6100
  • Ruby开发web怎么样?Ruby开发Web用什么框架好?

    Ruby语言凭借其优雅的语法结构和强大的Rails框架,已成为构建高效、稳定Web应用程序的首选技术栈之一,其核心优势在于“约定优于配置”的开发理念,能够显著缩短开发周期并降低维护成本,特别适合初创项目及对上线速度有极高要求的企业级应用,选择Ruby进行Web开发,本质上是在选择一种高生产力、高可读性的工程化解……

    2026年3月24日
    11300
  • 云计算数据安全技术有哪些?云计算信息数据安全技术分析

    关于云计算信息数据安全技术分析在数字化转型的深水区,服务器不仅是计算资源的载体,更是企业数据资产的安全防线,随着《数据安全法》与《个人信息保护法》的深入实施,传统的“边界防御”思维已无法应对日益复杂的网络威胁,本文基于真实测试环境,对当前主流云计算服务商在底层架构、加密机制及合规性方面的表现进行深度剖析,并结合……

    程序开发 2026年6月6日
    3200
  • 云数据库是什么?云数据库和传统数据库的区别

    关于云数据库的所有信息在数字化转型的深水区,数据已成为企业的核心资产,对于开发者、初创团队以及中大型企业而言,选择一款稳定、高效且具备高扩展性的云数据库,不仅是技术架构的基石,更是业务连续性的保障,本文将从性能实测、安全架构、成本效益及售后服务四个维度,对当前主流的云数据库产品进行深度测评,并结合2026年的市……

    2026年6月10日
    5300
  • 测试开发发展前景如何?测试开发工程师薪资待遇高吗

    测试开发已从单纯的软件质量保障角色演进为驱动研发效能提升的核心引擎,其核心价值在于通过代码能力与自动化技术,实现质量保障的左移与右移,从而在保障业务快速迭代的同时显著降低企业的人力成本,当前,测试开发发展的核心结论是:纯粹的点点点手工测试已无出路,具备全栈技术能力、能够构建自动化测试体系并深入DevOps流程的……

    2026年3月15日
    20600
  • Nginx如何防CC攻击?Nginx配置防CC攻击方法

    Nginx防CC攻击在云计算与高并发业务并行的今天,CC(Challenge Collapsar)攻击已成为企业服务器面临的最大威胁之一,这种攻击通过伪造大量合法请求耗尽服务器资源,导致正常用户无法访问,对于追求极致性能与稳定性的站长而言,单纯依赖云厂商的基础防护往往不够,深入理解底层架构并选择具备原生Ngin……

    2026年7月10日
    20210
  • office二次开发怎么做?office插件开发教程

    Office二次开发是实现企业办公自动化与业务流程深度融合的关键技术手段,其核心价值在于打破通用办公软件的功能边界,通过定制化编程构建专属的企业级应用平台,从而显著提升组织协同效率与数据安全性,企业通过合理的二次开发策略,能够将Office套件从单一的文档处理工具转化为具备业务逻辑处理能力的智能系统,实现数据流……

    2026年3月25日
    12800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注