在Linux系统中,查看CPU和内存信息是系统管理和性能调优的基础操作。有多种命令行工具可以提供不同详细程度和维度的信息。以下将介绍最常用和专业的命令及其输出解析。

一、查看CPU信息
CPU信息主要包括处理器型号、架构、核心数、线程数、频率和缓存等。
1. 使用 `lscpu` 命令:这是一个最直接、最清晰的命令,用于显示CPU架构信息。它从 `/proc/cpuinfo` 和系统库中收集数据,并以易于阅读的格式呈现。
2. 查看 `/proc/cpuinfo` 文件:这是内核提供的虚拟文件,包含了每个CPU核心的详细信息。使用 `cat /proc/cpuinfo` 可以查看原始数据。
以下是通过 `lscpu` 命令整理的典型CPU信息表格:
| 信息项 | 含义与说明 |
|---|---|
| 架构 (Architecture) | CPU架构,如 x86_64、aarch64。 |
| CPU 运行模式 (CPU op-mode(s)) | 支持的模式,如32位、64位。 |
| 字节序 (Byte Order) | Little Endian 或 Big Endian。 |
| CPU 数量 (CPU(s)) | 逻辑CPU(线程)的总数。 |
| 在线 CPU 列表 (On-line CPU(s) list) | 当前可用的CPU核心范围。 |
| 每核线程数 (Thread(s) per core) | 每个物理核心的线程数(超线程技术)。 |
| 每插槽核心数 (Core(s) per socket) | 每个CPU插槽(物理CPU)的物理核心数。 |
| 插槽数量 (Socket(s)) | 物理CPU的数量。 |
| 厂商 ID (Vendor ID) | CPU制造商,如 GenuineIntel、AuthenticAMD。 |
| 型号名称 (Model name) | CPU的具体型号和频率。 |
| CPU 最大 MHz (CPU max MHz) | CPU的最大动态频率。 |
| CPU 最小 MHz (CPU min MHz) | CPU的最小动态频率。 |
| 一级、二级、三级缓存 (L1d, L1i, L2, L3 cache) | 各级缓存的大小。 |
3. 其他相关命令:`nproc` 命令可以快速显示逻辑CPU核心总数;`dmidecode -t processor` 命令可以获取更底层的物理CPU信息,但需要root权限。
二、查看内存信息
内存信息主要包括总容量、已用容量、空闲容量、缓存/缓冲区用量以及交换空间(Swap)使用情况。
1. 使用 `free` 命令:这是查看内存使用概况的标准命令。推荐使用 `free -h`(人类可读格式)或 `free -m`(以MB为单位)。
2. 查看 `/proc/meminfo` 文件:这是最详细的内存信息源,`free`、`top`等命令的数据均来源于此。使用 `cat /proc/meminfo` 查看。
以下是 `free -h` 命令输出及 `/proc/meminfo` 关键字段的解析表格:
| 字段/参数 | 含义与说明 |
|---|---|
| total | 物理内存或交换空间的总大小。 |
| used | 已使用的内存(计算公式:used = total - free - buffers/cache)。 |
| free | 完全未被使用的内存。 |
| shared | 被tmpfs等文件系统使用的共享内存。 |
| buff/cache | 内核缓冲区(buffer)和页面缓存(cache)占用的内存。这部分内存在应用程序需要时可以被快速回收。 |
| available | 估算的、可供启动新应用程序而无需交换的内存数量。这是比 `free` 更实用的指标。 |
| MemTotal (来自 /proc/meminfo) | 系统可用的总物理内存。 |
| MemFree | 完全空闲的内存。 |
| MemAvailable | 可用内存的估计值。 |
| Buffers | 用于块设备(如磁盘)的临时缓冲区大小。 |
| Cached | 页面缓存的大小。 |
| SwapTotal / SwapFree | 交换空间的总大小和空闲大小。 |
3. 使用 `vmstat` 命令:`vmstat -s` 可以以单行形式显示详细的内存统计摘要。
三、综合性监控工具
除了上述基础命令,还有一些功能强大的综合性工具可以同时、动态地查看CPU和内存信息:
1. `top` 或 `htop`:实时动态显示系统进程和资源占用情况。顶部区域显示了CPU使用率(us用户, sy系统, id空闲等)、内存和交换空间的使用概况。
2. `glances`:一个更现代化的跨平台系统监控工具,在一个界面中提供了CPU、内存、磁盘、网络、进程等丰富信息。
四、扩展:理解关键指标
在分析CPU信息时,逻辑CPU数 = 物理CPU数 × 每CPU核心数 × 每核心线程数。这是系统可并行执行任务的理论上限。
在分析内存信息时,重点应关注可用内存 (available) 而非单纯的空闲内存 (free)。因为Linux会利用空闲内存进行缓存(cache)以提升性能,这部分内存在需要时会被立即释放。当 `available` 值持续过低时,可能意味着物理内存不足,系统开始频繁使用交换空间,这将导致性能严重下降。
掌握这些命令和指标,是进行Linux系统性能分析、容量规划和故障排查的坚实基础。

查看详情

查看详情