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服务器已安装并运行SSH服务(默认大多数发行版已安装),服务器拥有公网IP地址(如云服务器的弹性公网IP,或路由器端口映射后的内网IP……

    2025年10月9日
    9100
  • 如何在Linux系统中安装Win7?

    在Linux系统下安装Windows 7双系统,需提前做好准备工作,合理规划分区,并注意引导配置,以下是详细步骤:准备工作数据备份:确保Linux系统中的重要数据已备份至外置存储设备,避免安装过程中误删数据,硬件检查:确认电脑是否支持Windows 7(较新硬件可能需手动加载驱动),预留至少50GB未分配空间……

    2025年9月30日
    7200
  • 安装依赖失败怎么办

    在Linux系统中使用nsg2(NetSurf Graphics Library)主要涉及图像格式转换和处理,它是NetSurf浏览器项目的核心组件之一,以下为详细操作指南:nsg2简介nsg2是NetSurf浏览器用于处理位图图像的库,支持.nsb(NetSurf Bitmap)、.nsg(NetSurf S……

    2025年7月5日
    10700
  • Linux Oracle如何创建表空间?

    在Linux操作系统下为Oracle数据库创建表空间是数据库管理中的基础操作,表空间作为数据库逻辑存储结构的核心,用于存储用户数据、索引、大对象等各类数据,合理创建表空间能有效提升数据管理效率、优化性能并保障数据安全性,以下是详细的操作步骤及注意事项,涵盖环境准备、命令执行、参数解析及后续验证全流程,创建表空间……

    2025年9月29日
    6900
  • RedHat Linux如何设置双屏显示?

    在Redhat Linux系统中设置双屏显示,可以有效提升工作效率,无论是多任务处理、编程开发还是演示展示,双屏都能提供更广阔的操作空间,本文将详细介绍从硬件准备到软件配置的全过程,涵盖驱动安装、命令行与图形界面配置方法,以及常见问题解决方案,帮助用户顺利完成双屏设置,硬件准备与基础检测在开始配置前,确保硬件连……

    2025年8月25日
    7600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信