如何判断Linux系统是运行在物理机还是虚拟机 您所在的位置:网站首页 kvm虚拟机的作用 如何判断Linux系统是运行在物理机还是虚拟机

如何判断Linux系统是运行在物理机还是虚拟机

2023-06-10 15:47| 来源: 网络整理| 查看: 265

如何判断Linux系统是运行在物理机还是虚拟机 1、概述2、检测命令2.1、systemd-detect-virt命令2.2、lscpu命令 3、区别4、总结

1、概述

大家好,我是欧阳方超。今天看一看判断Linux是运行在物理机还是虚拟机的问题。其实要不是项目经理的追问,我都想不到这来。 一次很偶然的谈话, 项目经理问到:你们的系统是运行在物理机还是虚拟机上, 我:啥,这有什么关系吗? 项目经理:xxx, 于是项目经理假装严肃地教育了一番,完事我还得反馈结果给他。

2、检测命令

简单搜索后,发现是有命令进行判断的。

2.1、systemd-detect-virt命令

systemd-detect-virt命令用于检测当前系统是否正在运行于虚拟机中。 具体作用: 如果检测到当前系统正在虚拟机环境中运行,则返回对应虚拟平台名称,如:kvm、vmware、xen 等; 如果检测到当前系统正在物理机上直接运行,则返回none; 下面是在物理机上执行的结果:

[root@peer0 ~]# systemd-detect-virt none

下面是在kvm虚拟机上执行的结果:

$ systemd-detect-virt kvm 2.2、lscpu命令

lscput命令主要作用是查看CPU信息,它有两方面的作用,一是显示CPU基本信息,包括:CPU架构(如x86_64)、CPU核数、CPU主频、是否支持多线程、L1/L2缓存大小、制造商和CPU型号;二是判断系统是否支持虚拟化技术以及所支持的虚拟化技术,具体来说,通过Virtualization字段表明CPU是否支持虚拟化技术(当运行在物理机上时显示VT-x或AMD-v),以及使用的时何种虚拟化技术(当运行在虚拟机上时显示KVM或VMware). 下面是当Linux系统运行在物理机上时,lscpu的执行效果:

[root@peer0 ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 16 On-line CPU(s) list: 0-15 Thread(s) per core: 2 Core(s) per socket: 4 座: 2 NUMA 节点: 2 厂商 ID: GenuineIntel CPU 系列: 6 型号: 85 型号名称: Intel(R) Xeon(R) Gold 5122 CPU @ 3.60GHz 步进: 4 CPU MHz: 3600.000 BogoMIPS: 7200.00 虚拟化: VT-x L1d 缓存: 32K L1i 缓存: 32K L2 缓存: 1024K L3 缓存: 16896K NUMA 节点0 CPU: 0,2,4,6,8,10,12,14 NUMA 节点1 CPU: 1,3,5,7,9,11,13,15 3、区别

Linux系统运行在虚拟机或物理机上存在以下主要区别:

资源使用 - 虚拟机的资源(CPU、内存、磁盘等)是分配给它的,而物理机可以直接使用它所有安装的物理资源。所以物理机的性能会更高。稳定性 - 物理机由于直接使用硬件,系统往往更稳定。虚拟机由于软件层面模拟硬件,稳定性会略差一些。硬件访问 - 虚拟机访问硬件需要通过虚拟机软件,速度可能更慢一些。物理机直接访问硬件。可移植性 - 虚拟机由于是软件层面的模拟,更易移植到不同的硬件和平台上。物理机限于自己的硬件。隔离性 - 虚拟机之间运行互不影响,隔离性好。而物理机直接运行在硬件上,相互影响较大。存储 - 虚拟机使用软件分配的虚拟磁盘,可以很容易地备份和迁移。 物理机的硬盘直接安装在硬件上,不易迁移。成本 - 虚拟机由于不需要额外的硬件,成本更低。物理机需要购买独立的硬件,成本较高。 总的来说,虚拟机具有更高的隔离性、可移植性和成本效益,但相对来说资源使用效率和稳定性略逊于物理机。 4、总结

本文抛砖引玉,介绍了两个用于检测Linux系统时运行在物理机还是虚拟机上的命令,也许还有一些其他命令吧,大家可以在评论区讨论一下。 我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有