Linux系统如何查看CPU与内存的使用情况?

在Linux系统中,监控CPU和内存的使用情况是系统管理和性能优化的基础工作,通过合理的命令和工具,管理员可以实时了解系统资源状态,及时发现瓶颈并采取应对措施,本文将详细介绍Linux查看CPU和内存信息的多种方法,包括常用命令、参数解析及实际应用场景。

linux如何查看cpu内存

查看CPU信息的方法

CPU作为系统的核心组件,其使用率、核心数、型号等信息直接影响系统性能,Linux提供了多种命令来获取CPU相关数据,以下为常用工具及使用方法:

使用lscpu命令查看CPU架构及核心信息

lscpu命令以可读格式显示CPU架构信息,包括处理器型号、核心数、线程数、架构类型等,无需额外参数即可输出详细结果。

lscpu

输出示例包含以下关键字段:

  • Architecture: CPU架构(如x86_64、aarch64)
  • CPU op-mode(s): 支持的操作模式(如32-bit, 64-bit)
  • Byte Order: 字节序(如Little Endian)
  • CPU(s): 逻辑处理器总数(即线程数)
  • On-line CPU(s) list: 在线运行的CPU核心编号
  • Thread(s) per core: 每个核心的线程数(超线程技术下为2)
  • Core(s) per socket: 每个插槽的核心数
  • Socket(s): CPU插槽数量(物理CPU个数)

解析/proc/cpuinfo文件获取原始CPU数据

/proc/cpuinfo是Linux内核提供的虚拟文件,记录了CPU的详细信息,适用于需要原始数据的场景。

cat /proc/cpuinfo

输出按物理CPU分组,每组包含processor(逻辑处理器ID)、model name(型号)、cpu MHz(主频)、cache size(缓存大小)等字段,通过grep "model name" /proc/cpuinfo | uniq可查看所有CPU型号是否一致。

使用top/htop实时监控CPU使用率

top是动态监控进程资源的经典工具,默认按CPU使用率排序;htop是其增强版,支持彩色显示和交互操作,更直观易用。

top  # 默认启动
htop # 需安装,部分系统默认未预装

关键字段解析

  • %us: 用户空间CPU使用率
  • %sy: 内核空间CPU使用率
  • %ni: 低优先级进程CPU使用率
  • %id: 空闲CPU率
  • %wa: 等待I/O的CPU率
  • %hi: 硬中断率
  • %si: 软中断率
  • %st: 虚拟机占用宿主CPU的比率(仅在虚拟机中显示)

通过top1快捷键可切换至每核心CPU监控,查看各核心负载情况。

使用mpstat查看CPU各核心使用率

mpstatsysstat工具包的一部分,需安装(如yum install sysstatapt install sysstat),可详细统计每个CPU核心的使用情况。

mpstat 1 5  # 每秒更新一次,共输出5次报告

输出包含%usr%nice%sys、%iowait%irq%soft%steal%idle等指标,通过mpstat -P ALL 1可查看所有核心的独立统计。

linux如何查看cpu内存

使用nproc查看逻辑核心数

若仅需获取逻辑CPU核心数量(即线程数),nproc是最简洁的命令:

nproc

输出结果与lscpu中的CPU(s)字段一致,适用于脚本自动化场景。

查看内存信息的方法

内存是系统运行的临时数据存储区域,监控内存使用情况可避免因内存不足导致的性能问题,以下是查看内存的常用命令:

使用free命令查看内存及swap使用情况

free是查看内存使用最直接的命令,支持-b(字节)、-k(KB)、-m(MB)、-g(GB)等单位切换,-h可自动选择合适单位(如1K、234M、2G)。

free -h

输出字段解析
| 列名 | 说明 |
|————|——————————-|
| total | 物理内存总量 |
| used | 已使用内存(包括buff/cache) |
| free | 完全空闲内存 |
| shared | 共享内存(如tmpfs) |
| buff/cache | 缓冲区+缓存(可回收内存) |
| available | 可用内存(估算值,更准确) |
| Swap | 交换分区使用情况(结构与物理内存相同) |

注意used包含buff/cache,而available是系统实际可用的内存(包括free和可回收的buff/cache),后者更能反映内存紧张程度。

解析/proc/meminfo文件获取详细内存参数

/proc/meminfo是内存信息的原始数据文件,包含更底层的参数,如MemTotalMemFreeBuffersCachedSwapTotalSwapFree等。

cat /proc/meminfo

通过grep "MemAvailable" /proc/meminfo | awk '{print $2}'可获取可用内存的页数,需乘以页面大小(如getconf PAGESIZE)转换为字节。

使用vmstat查看虚拟内存统计

vmstat可监控内存、进程、I/O等系统整体状态,-s参数以表格形式显示内存统计:

vmstat -s

输出示例:

linux如何查看cpu内存

      total memory     : 16384000 kB
      available memory  : 8094588 kB
      free memory       : 523456 kB
      buffer memory     : 1234567 kB
      cached memory     : 4567890 kB
      swap total        : 2097152 kB
      swap free         : 2097152 kB

实时监控时,vmstat 1会每秒输出内存使用变化,重点关注si(swap进入)和so(swap出去)的值,若持续大于0,说明内存不足,频繁使用swap会降低性能。

使用htop查看内存及进程级内存占用

htop的内存界面以进度条形式展示物理内存和swap使用情况,并通过颜色区分usedbufferscache,同时列出各进程的内存占用(RES为物理内存,SHR为共享内存,%MEM为内存使用率)。

htop

通过F6可按内存排序,快速定位内存占用高的进程。

使用smem查看进程内存占用及PSS/USS

smem是一款更精确的内存分析工具,可计算进程的PSS(Proportional Set Size,按比例分摊的共享内存)和USS(Unique Set Size,进程独占内存),避免重复计算共享内存导致的误差。

smem -t -k  # 以表格形式显示,按内存排序

输出包含PIDCommandUSSPSSShared等字段,适用于排查内存泄漏问题。

工具选择与实际应用

场景 推荐工具 优点
快速查看CPU/内存概览 free -hlscpu 简洁直观,无需安装额外工具
实时监控进程资源 htop 彩色界面,支持交互操作和进程级排序
分析CPU核心负载 mpstat -P ALL 详细统计各核心使用情况
排查内存泄漏 smemvmstat -s 精确计算进程内存占用,避免共享内存重复计算
脚本自动化 nprocfree -bawk '/MemAvailable/ {print $2}' 输出结构化数据,便于脚本解析

相关问答FAQs

Q1: 如何查看CPU温度?
A1: 查看CPU温度需依赖硬件传感器,常用工具为sensors(需安装lm-sensors包),安装后执行sensors即可显示CPU、主板等温度传感器数据,

# 安装lm-sensors(CentOS/RHEL)
sudo yum install lm_sensors  
sudo sensors-detect  # 自动检测传感器并配置  
# Ubuntu/Debian  
sudo apt install lm-sensors  
sudo sensors-detect  
# 查看温度  
sensors  

输出中Core TempPackage id 0即为CPU温度,正常范围通常为30-70℃,持续高于80℃需检查散热。

Q2: 如何判断是否存在内存泄漏?
A2: 内存泄漏是指程序未释放不再使用的内存,导致可用内存逐渐减少,可通过以下步骤排查:

  1. 观察内存趋势:执行free -h 1持续监控,若available内存持续下降且si/so(swap交换)不为0,可能存在内存泄漏。
  2. 分析进程内存:使用smem -t -k查看进程内存占用,若某进程的USSPSS持续增长,则可能存在泄漏。
  3. 使用专业工具:通过valgrind --tool=memcheck --leak-check=full ./程序名运行程序,可检测内存泄漏的具体位置(需安装valgrind)。
  4. 对比重启前后内存:重启目标进程后,若内存恢复正常且后续再次泄漏,可确认内存泄漏问题。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/28418.html

(0)
酷番叔酷番叔
上一篇 2025年9月22日 17:46
下一篇 2025年9月22日 18:01

相关推荐

  • 如何查看linux队列

    使用命令dmesg | grep -i buffer查看Linux队列相关信息,也可通过`

    2025年8月13日
    11100
  • 如何查看linuxuek内核

    Linux UEK内核版本可通过uname -r命令,查看内核

    2025年8月17日
    9800
  • Linux系统IP如何修改?具体步骤和方法有哪些?

    在Linux系统中修改IP地址是日常运维和管理的常见操作,根据使用场景和发行版的不同,操作方法略有差异,本文将详细介绍通过命令行临时修改、配置文件永久修改以及使用NetworkManager工具修改IP的方法,涵盖CentOS/RHEL和Ubuntu/Debian主流发行版,临时修改IP地址(重启失效)临时修改……

    2025年9月20日
    9500
  • linux如何找到www目录

    在Linux系统中,“www目录”通常指的是Web服务器(如Apache、Nginx等)存放网站文件的根目录,也可能是用户自定义的网站开发或托管目录,找到www目录的方法因服务器配置和用户需求而异,以下从默认路径、配置文件查找、命令行搜索等角度详细说明,帮助快速定位目标目录,通过Web服务器默认路径查找主流Li……

    2025年9月25日
    9600
  • 如何创建快照防止数据丢失?

    Linux系统如何实现“一键恢复”:详细指南在Linux系统中,虽然没有原生的“一键恢复”按钮,但通过合理的备份策略和工具组合,可以实现高效的系统恢复,以下是几种主流方案,兼顾安全性与易用性:Timeshift:最接近“一键恢复”的图形化工具原理:基于rsync或Btrfs快照,定期备份系统状态,适用场景:系统……

    2025年7月27日
    11800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信