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提示符

    遇到特定提示符时,通常表示处于GRUB菜单、固件界面或自定义Shell,按Esc键是常见退出方法,具体操作因环境而异。

    2025年7月14日
    20200
  • cdlinux如何跑pin

    cdlinux中,需先确保无线网卡支持并安装相关驱动,然后通过命令行工具

    2025年8月17日
    14300
  • linux系统如何安装nc

    Linux系统中,可以使用包管理器安装nc,对于Debian/Ubuntu系统,运行sudo apt-get install netcat;

    2025年8月14日
    14800
  • Linux调试精髓是什么?

    Linux调试核心在于掌握GDB动态分析代码、strace/ltrace追踪系统调用、利用日志和核心转储分析崩溃,以及使用perf/Valgrind定位性能问题,理解底层机制是关键。

    2025年7月12日
    17600
  • ECS Linux SUSE系统如何搭建网站?

    在阿里云ECS实例上基于SUSE Linux操作系统搭建网站,需完成环境准备、服务安装、配置优化及安全设置等步骤,以下是详细操作流程:准备工作创建ECS实例登录阿里云控制台,选择“云服务器ECS”,创建新实例,镜像选择“SUSE Linux Enterprise Server 15 SP3”(或其他SUSE版本……

    2025年9月27日
    17600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信