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修改文件后,如何正确保存并确保生效?

    在Linux系统中,无论是修改配置文件、编写脚本还是编辑文本,正确保存文件是确保操作生效的关键,由于Linux下有多种编辑方式和工具,不同场景下的保存操作也存在差异,掌握这些方法能有效避免数据丢失或配置不生效的问题,以下将从常用文本编辑器、非交互式命令修改、权限处理及保存后生效操作等方面,详细说明Linux修改……

    2025年9月22日
    2100
  • Linux系统如何进入编译环境?详细步骤与命令有哪些?

    在Linux系统中,编译环境是进行软件开发和系统维护的基础,它提供了将源代码转换为可执行程序所需的工具链(如编译器、链接器、构建工具等),默认情况下,大多数Linux发行版不会预装完整的编译环境,用户需手动配置,本文将详细介绍如何进入并配置Linux编译环境,涵盖工具检查、安装、环境变量配置及验证等关键步骤,检……

    2025年10月6日
    800
  • 如何用ISO镜像安装Linux系统?

    通过ISO文件安装Linux系统是较为常见的安装方式,尤其适合需要自定义系统配置或离线安装的场景,以下是详细的安装步骤及注意事项,帮助顺利完成系统部署,安装前的准备工作下载ISO镜像:访问Linux发行版官网(如Ubuntu、Fedora、CentOS等),根据系统架构(64位/32位)下载对应的ISO镜像文件……

    2025年9月23日
    1900
  • Linux系统下如何编译Java源代码?详细步骤与方法指南

    在Linux环境下编译Java程序主要涉及JDK(Java Development Kit)的安装配置、代码编写、编译及运行等步骤,以下是详细操作流程:环境准备:安装与配置JDK编译Java程序的前提是系统已安装JDK,JDK包含编译器(javac)和运行时环境(JRE),首先需检查系统是否已安装JDK:打开终……

    2025年9月29日
    1300
  • Linux文件系统为何是高效操作的关键?

    Linux的”万物皆文件”Linux将硬件设备、目录、普通数据等统一抽象为文件,主要分为七类:普通文件(-):文本、图片、可执行程序等常规数据,通过file 文件名可查看类型,目录文件(d):用于组织文件的特殊文件,本质是文件路径的映射表,符号链接(l):类似Windows快捷方式,存储目标文件路径(ln -s……

    2025年7月21日
    4600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信