前言
在日常运维和系统管理中,了解和监控服务器的硬件信息是非常重要的。本文将介绍三个常用的命令来快速获取 Linux 系统的硬件信息,并详细分析每个命令的输出结果。
1. lscpu 命令
介绍
lscpu 是一个显示有关 CPU 架构信息的命令。它直接从 /proc/cpuinfo 文件读取数据,并以人类可读的格式显示。
命令输出分析
以下是 lscpu 命令的输出示例:
[root@rocky docker]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 45 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 16
On-line CPU(s) list: 0-15
Vendor ID: GenuineIntel
BIOS Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) CPU E5-2696 v3 @ 2.30GHz
BIOS Model name: Intel(R) Xeon(R) CPU E5-2696 v3 @ 2.30GHz
CPU family: 6
Model: 63
Thread(s) per core: 1
Core(s) per socket: 16
Socket(s): 1
Stepping: 2
BogoMIPS: 4589.37
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl
xtopology tsc_reliable nonstop_tsc cpuid tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c
rdrand hypervisor lahf_lm abm pti ssbd ibrs ibpb stibp fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid xsaveopt arat md_clear flush_l1d arch_capabilities
Virtualization features:
Hypervisor vendor: VMware
Virtualization type: full
Caches (sum of all):
L1d: 512 KiB (16 instances)
L1i: 512 KiB (16 instances)
L2: 4 MiB (16 instances)
L3: 45 MiB (1 instance)
NUMA:
NUMA node(s): 1
NUMA node0 CPU(s): 0-15
Vulnerabilities:
Gather data sampling: Not affected
Itlb multihit: KVM: Mitigation: VMX unsupported
L1tf: Mitigation; PTE Inversion
Mds: Mitigation; Clear CPU buffers; SMT Host state unknown
Meltdown: Mitigation; PTI
Mmio stale data: Mitigation; Clear CPU buffers; SMT Host state unknown
Retbleed: Not affected
Spec rstack overflow: Not affected
Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP disabled, RSB filling, PBRSB-eIBRS Not affected
Srbds: Not affected
Tsx async abort: Not affected
- Architecture: 系统架构,本文为
x86_64。 - CPU op-mode(s): 支持的操作模式,32 位和 64 位。
- Address sizes: 地址空间大小,物理地址 45 位,虚拟地址 48 位。
- Byte Order: 字节序,本文为小端序。
- CPU(s): CPU 核心数,本文为 16 核。
- On-line CPU(s) list: 在线 CPU 列表,0 到 15。
- Vendor ID: CPU 厂商 ID,本文为
GenuineIntel。 - Model name: CPU 型号名,本文为
Intel(R) Xeon(R) CPU E5-2696 v3 @ 2.30GHz。 - Thread(s) per core: 每个核心的线程数,本文为 1。
- Core(s) per socket: 每个插槽的核心数,本文为 16。
- Socket(s): 插槽数量,本文为 1。
- BogoMIPS: 一个粗略的 CPU 测试指标,本文为 4589.37。
- Flags: 列出了支持的 CPU 特性和指令集扩展。
- Caches: 缓存信息,L1d 和 L1i 为 512 KiB,L2 为 4 MiB,L3 为 45 MiB。
- NUMA: 非一致性内存访问架构,本文为 1 个 NUMA 节点。
- Vulnerabilities: 列出了常见的 CPU 漏洞及其缓解措施。
2. free -h 命令
介绍
free 命令用于显示系统的内存使用情况。-h 选项表示以人类可读的格式显示输出。
命令输出分析
以下是 free -h 命令的输出示例:
[root@rocky docker]# free -h
total used free shared buff/cache available
Mem: 62Gi 1.1Gi 61Gi 8.0Mi 643Mi 61Gi
Swap: 0B 0B 0B
- total: 总内存,本文为 62 GiB。
- used: 已使用内存,本文为 1.1 GiB。
- free: 空闲内存,本文为 61 GiB。
- shared: 共享内存,本文为 8.0 MiB。
- buff/cache: 缓冲区和缓存使用的内存,本文为 643 MiB。
- available: 可用内存,本文为 61 GiB。
- Swap: 交换分区信息,本文没有交换分区。
3. lsblk 命令
介绍
lsblk 命令用于列出所有可用的块设备及其挂载点信息。
命令输出分析
以下是 lsblk 命令的输出示例:
[root@rocky docker]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1T 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 1023G 0 part
├─rl-root 253:0 0 1013G 0 lvm /
└─rl-swap 253:1 0 10G 0 lvm
sr0 11:0 1 1024M 0 rom
- NAME: 设备名称,
sda表示第一个 SCSI 磁盘,sr0表示光驱。 - MAJ:MIN: 设备的主、次编号。
- RM: 是否为可移动设备,
0表示否,1表示是。 - SIZE: 设备大小,
sda为 1 TiB,sr0为 1024 MiB。 - RO: 只读标志,
0表示可读写,1表示只读。 - TYPE: 设备类型,
disk表示磁盘,part表示分区,lvm表示逻辑卷。 - MOUNTPOINTS: 挂载点,
/boot挂载在sda1,根文件系统挂载在rl-root,交换分区为rl-swap。
总结
通过 lscpu、free -h 和 lsblk 这三个命令,我们可以快速获取系统的 CPU 信息、内存使用情况以及磁盘布局和挂载点信息。这些信息对于系统性能调优、故障排除和资源管理都非常有用。希望本文能帮助你更好地理解和使用这些命令。