在管理和维护 CentOS 服务器的日常工作中,实时、准确地掌握系统的 CPU 与内存资源状况是至关重要的,这不仅有助于性能调优,更是故障排查与容量规划的基础,CentOS 作为一款广泛应用的 Linux 发行版,提供了丰富而强大的命令行工具,让系统管理员能够从宏观概览到微观细节,全方位洞察硬件资源的使用情况。
查看 CPU 信息
了解 CPU 的型号、核心数、频率以及当前负载,是评估服务器计算能力的第一步。
使用 lscpu
命令
lscpu
是一个现代且信息展示非常友好的命令,它能够清晰地汇总并展示 CPU 的架构信息,无需任何参数,直接在终端输入即可:
lscpu
其输出信息通常包含以下关键字段:
- Architecture: CPU 架构,如 x86_64。
- CPU(s): 逻辑 CPU 的总数,也就是操作系统看到的核心数。
- Socket(s): 物理 CPU 插槽的数量。
- Core(s) per socket: 每个物理 CPU 上的核心数。
- Thread(s) per core: 每个核心支持的线程数(超线程技术)。
- Model name: CPU 的具体型号,Intel Xeon E5-2680 v4。
- CPU MHz: CPU 的主频。
- L1d/L1i/L2/L3 cache: 各级缓存的大小。
通过 CPU(s) = Socket(s) * Core(s) per socket * Thread(s) per core
这个公式,可以验证 CPU 的物理与逻辑核心关系,这对于理解服务器的并行处理能力至关重要。
查看 /proc/cpuinfo
文件
/proc
文件系统是 Linux 内核提供的一个虚拟文件系统,其中包含了大量系统运行时的实时信息。/proc/cpuinfo
文件记录了每个逻辑 CPU 的详细参数。
cat /proc/cpuinfo
这个文件会为每一个逻辑 CPU 列出一段详细信息,包括 processor
(逻辑CPU编号)、vendor_id
(制造商)、cpu family
、model
、model name
、stepping
、cpu MHz
、cache size
以及 flags
(支持的指令集,如 sse, avx 等),虽然信息全面,但输出较为冗长,通常用于脚本提取特定信息或进行深度分析。
实时监控 CPU 使用率
静态信息告诉我们 CPU 的“硬件规格”,而动态使用率则反映了其“工作状态”。
这是系统管理员最常用的实时监控工具之一,在终端输入 top
后,界面顶部的%Cpu(s)
行会展示 CPU 的整体使用情况,包括us
(用户空间占用)、sy
(内核空间占用)、id
(空闲)、wa
(等待I/O)等关键指标。htop
是top
的一个增强版,界面更美观,操作更直观,它默认情况下会以图形化条形图展示每个逻辑 CPU 的独立使用率,并且支持鼠标操作,非常方便,如果系统未安装,可以通过yum install htop
进行安装。
查看内存信息
内存是影响服务器响应速度和多任务处理能力的关键因素。
使用 free -h
命令
free
命令是查看内存使用情况的首选,加上 -h
(human-readable) 参数后,会以易读的 GB、MB 单位显示信息。
free -h
输出结果包含两行:Mem
(物理内存) 和 Swap
(交换空间),重点关注以下几列:
- total: 总内存容量。
- used: 已被使用的内存。
- free: 完全未被使用的内存。
- buff/cache: 缓冲区和缓存占用的内存,这部分内存虽然在“used”统计中,但 Linux 系统的内存管理机制会优先使用空闲内存作为缓存,当应用程序需要更多内存时,这部分缓存可以被迅速释放,因此它并非真正意义上的“被占用”。
- available: 可用内存,这是
free
命令中最重要的一个指标,它精确地表示了在不使用 Swap 的情况下,新程序可以启动的内存量,其值为free + buff/cache 中可回收的部分
。
查看 /proc/meminfo
文件
与 /proc/cpuinfo
类似,/proc/meminfo
提供了最原始、最详细的内存数据。
cat /proc/meminfo
这个文件列出了上百个与内存相关的指标,如 MemTotal
, MemFree
, MemAvailable
, Buffers
, Cached
, SwapTotal
, SwapFree
等,同样,适用于自动化脚本和需要深度诊断的场景。
结合 top
/htop
查看内存
在 top
或 htop
的界面中,同样可以清晰地看到内存的总体使用情况,top
会列出按内存使用率排序的进程列表,帮助快速定位内存消耗大户。
为了方便快速查阅,下表小编总结了查看 CPU 和内存的核心命令:
功能类别 | 命令 | 主要用途 | 特点 |
---|---|---|---|
CPU信息 | lscpu | 查看CPU静态概览信息 | 信息结构化,易读 |
cat /proc/cpuinfo | 查看CPU详细原始信息 | 信息全面,适合脚本 | |
top / htop | 实时监控CPU使用率 | 动态,可定位进程 | |
内存信息 | free -h | 查看内存使用概览 | 人性化显示,available 是关键 |
cat /proc/meminfo | 查看内存详细原始信息 | 信息全面,适合脚本 | |
top / htop | 实时监控内存使用率 | 动态,可定位进程 |
相关问答FAQs
答: 这是 Linux 内存管理机制的正常现象,Linux 内核会尽可能多地利用空闲内存来作为文件缓存,以加快磁盘读写速度,这部分内存被计入 used
,但实际上属于 buff/cache
,当应用程序需要更多内存时,内核会立即回收这部分缓存,将其分配给应用程序。available
才是衡量系统当前可用内存的真正标准,一个高 buff/cache
和高 available
的组合通常意味着系统运行高效。
问题2:lscpu
命令输出的 CPU(s)、Core(s) 和 Socket(s) 之间有什么区别?
答: 这三者描述了 CPU 的不同物理和逻辑层级:
- Socket(s): 指主板上物理 CPU 芯片的插槽数量,代表有“几颗”物理 CPU。
- Core(s) per socket: 指每个物理 CPU 芯片上集成的独立处理核心的数量,这是真正的物理核心。
- Thread(s) per core: 指每个物理核心通过超线程技术能够模拟出的线程数量,通常为 1(不支持超线程)或 2(支持超线程)。
- CPU(s): 指逻辑 CPU 的总数,是操作系统最终能识别和处理的核心数量,计算公式为:
CPU(s) = Socket(s) × Core(s) per socket × Thread(s) per core
,这个数值决定了系统能够并行处理的任务流数量。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复