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

virsh查看虚拟机信息的核心命令是virsh list配合不同参数查看虚拟机列表,virsh dominfo查看单台虚拟机配置,virsh domifaddr查看虚拟机IP地址,virsh dommemstat和virsh 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列就能看出running、shut off、paused等信息,这是最快的一个判断方式。

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

从架构角度看,一台虚拟机对应一个XML描述文件,其中定义了内存、CPU、磁盘、网络等全部配置。virsh dominfo和virsh 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 memory和Used 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(宿主机视角的驻留内存)、available和unused,可以对比看出虚拟机内部实际内存占用率。

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能一次性输出所有虚拟机的状态汇总,适合巡检脚本调用,相比逐台执行dommemstat和domblkstat,效率要高得多。

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

较丰富,包含cpu.time、vcpu.current、balloon.current、block.count、net.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_bytes和rd_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 list、virsh dominfo、virsh dumpxml、virsh domifaddr、virsh dommemstat和virsh domblkstat这组命令,再辅以--all、--human、--source agent这些关键参数,就能覆盖大多数KVM虚拟机信息查询场景。

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

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

相关推荐

  • ftp服务器文件能直接打开吗,怎么打开文件?

    FTP服务器上的文件能否直接打开,取决于浏览器支持、文件类型以及服务器配置;在主流浏览器取消FTP支持后,需通过HTTP中转或FTP客户端实现无感预览,FTP服务器文件直接打开方法浏览器直接打开FTP文件的条件过去在地址栏输入ftp://就能浏览目录并打开文件,但近年来Chrome、Firefox等主流浏览器逐……

    2026年7月22日
    4100
  • PloxHost美国1美元VPS怎么样?便宜VPS性能实测靠谱吗

    在当前高性价比美国VPS市场中,PloxHost凭借其极具竞争力的价格策略吸引了大量开发者与站长的关注,主打1美元/月的美国VPS套餐更是备受瞩目,为了验证该套餐的实际可用性与性能天花板,我们对该VPS进行了深度的底层测试与真实场景模拟,本文所有数据均基于实际购买的标准套餐产出,确保客观真实, 测评环境与套餐概……

    2026年4月28日
    7300
  • cloudcone美国VPS怎么样,17.99美元/年实测性能值得买吗

    CloudCone作为美国洛杉矶MC机房的资深云服务商,凭借其按需计费与灵活配置的特色,在低价VPS市场中一直保持着较高的关注度,本次测评针对其当前促销的99美元/年套餐进行深度实测,涵盖硬件性能、网络表现、磁盘IO及真实建站场景,所有数据均在美西时间2026年活动期间真实采集,为开发者及站长提供客观的选购参考……

    2026年4月27日
    5000
  • Java JVM调优实战经验有哪些?JVM调优参数详解

    Java JVM调优实战经验在云原生与微服务架构日益普及的今天,Java应用的性能瓶颈往往不再局限于代码逻辑本身,而是深深扎根于Java虚拟机(JVM)的内存管理与垃圾回收机制中,许多开发者在初期往往忽视JVM参数的配置,导致在生产环境中频繁出现Full GC(全局垃圾回收)引发的STW(Stop-The-Wo……

    2026年7月10日
    16600
  • 如何精通Linux设备驱动开发?Linux驱动开发实战教程

    精通Linux设备驱动开发:从内核模块到用户交互Linux设备驱动是内核与硬件之间的核心桥梁,掌握其开发能力,意味着你能赋予硬件生命,让Linux系统无缝控制各类设备, 本教程深入解析Linux字符设备驱动开发全流程,涵盖关键概念与实战代码, 驱动基础与内核模块Linux驱动以内核模块形式存在,实现动态加载/卸……

    程序开发 2026年2月10日
    10800
  • JSP乱码怎么解决?JSP中文乱码处理方案

    在Web开发领域,尤其是基于Java的传统企业级应用中,JSP(JavaServer Pages)技术依然占据着重要地位,JSP乱码问题不仅是开发者日常调试中最头疼的“拦路虎”,更是衡量服务器环境配置能力、中间件兼容性以及运维专业度的试金石,本文将对主流服务器环境在JSP编码处理上的表现进行深度测评,并解析背后……

    2026年6月14日
    3610
  • 个人能注册哪些域名?个人域名注册有哪些类型

    2026年主流域名后缀详解与服务器选购指南在构建个人网站、博客或小型企业官网时,域名不仅是网站的“门牌号”,更是品牌识别的核心资产,对于个人用户而言,面对琳琅满目的域名后缀(TLD),往往感到困惑:究竟哪些域名适合个人注册?哪些更具性价比?更重要的是,域名注册后,如何搭配稳定、高速的服务器才能发挥最大价值?本文……

    2026年7月1日
    1300
  • 红米note开发者选项在哪里,红米note怎么开启开发者模式

    红米Note开发者选项默认处于隐藏状态,用户需通过连续点击“MIUI版本”这一特定操作来激活该功能入口,激活后,开发者选项会出现在系统设置的“更多设置”菜单中,这是安卓系统为了防止普通用户误操作而设计的保护机制,核心激活步骤:开启隐藏入口要找到红米Note的开发者选项,首先需要执行解锁操作,这一过程并不复杂,但……

    2026年4月11日
    7800
  • 小米8.5怎么打开开发者选项?开发者模式开启方法

    小米8.5的开发者模式并非简单的开关,而是连接用户与系统底层的桥梁,其核心价值在于通过高级调试选项释放硬件潜能、优化系统流畅度并解决深层软件故障,对于追求极致体验的用户而言,正确配置开发者选项是提升设备使用效率的关键步骤,能够有效解决应用卡顿、后台清理过度以及USB调试连接失败等常见问题,开启这一模式不会直接提……

    2026年4月6日
    8500
  • 系统开发方法众多,哪一种最适合您的项目需求?揭秘系统开发方法的多样性与选择难题。

    系统开发方法有多种,核心包括瀑布模型、敏捷开发、迭代模型、螺旋模型以及DevOps等,每种方法有其独特理念、流程和适用场景,深刻理解其差异是项目成功的关键, 瀑布模型:结构化与顺序化的经典核心思想: 将开发过程划分为清晰、顺序的阶段(如需求分析、系统设计、编码实现、测试验证、部署维护),每个阶段必须严格完成并通……

    2026年2月6日
    14150

发表回复

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