linux下如何查看内存使用情况

Linux下,可使用free -h命令查看内存使用情况,能清晰显示内存

Linux操作系统中,有多种方法可以查看内存的使用情况,下面将详细介绍几种常用的方法和命令,以及如何解读它们的输出信息。

free 命令

free 命令是最常用的查看内存使用情况的工具之一,它提供了关于系统内存使用的概览信息。

使用方法:

free -h

输出示例:

              total        used        free      shared  buff/cache   available
Mem:           7.8G        2.3G        4.9G        500M        600M        5.0G
Swap:          2.0G          0B        2.0G

解释:

  • total:总内存大小。
  • used:已使用的内存,包括缓冲区和缓存。
  • free:空闲内存。
  • shared:共享内存,通常用于进程间通信。
  • buff/cache:用于缓冲和缓存的内存,这部分内存可以在需要时被释放。
  • available:估计可用的内存,考虑了缓冲区和缓存的可回收性。

top 命令

top 命令提供了一个动态的实时视图,显示系统的进程和资源使用情况,包括内存。

使用方法:

top

输出示例:

top 12:34:56 up  1:23,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 100 total,   1 running,  99 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.2 us,  0.5 sy,  0.0 ni, 98.2 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  8123456 total,  2048000 used,  5575456 free,    51200 buffers
KiB Swap:  2048000 total,        0 used,  2048000 free.
    PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM TIME+ COMMAND
      1 root      20   0   10240   8123    672 S  0.3  0.1   0:01.23 systemd
      2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
...

解释:

  • KiB Mem:显示物理内存的总量、已用、空闲和缓冲区大小。
  • KiB Swap:显示交换空间的总量、已用和空闲大小。
  • %MEM:每个进程占用的内存百分比。

htop 命令

htoptop 命令的一个增强版,提供了更友好的用户界面和更多的交互功能。

安装方法(以Ubuntu为例):

sudo apt-get install htop

使用方法:

htop

输出特点:

  • 彩色显示:不同的指标用不同颜色表示,更直观。
  • 交互式操作:可以使用上下键选择进程,按F9杀死进程等。

vmstat 命令

vmstat 命令提供了关于系统虚拟内存的统计信息,包括内存、交换、I/O等。

使用方法:

vmstat -s

输出示例:

       8123456 K total memory
       2048000 K used memory
       5575456 K active memory
            0 K inactive memory
       51200 K buffer memory
            0 K swap cache
       2048000 K total swap
            0 K used swap
       2048000 K free swap

解释:

  • total memory:总内存大小。
  • used memory:已使用的内存。
  • active memory:活动内存,即最近被访问过的内存。
  • inactive memory:非活动内存,即长时间未被访问的内存。
  • buffer memory:用于缓冲的内存。
  • total swap:总交换空间大小。
  • used swap:已使用的交换空间。
  • free swap:空闲的交换空间。

/proc/meminfo 文件

/proc/meminfo 是一个虚拟文件,提供了关于系统内存使用的详细信息。

查看方法:

cat /proc/meminfo

输出示例:

MemTotal:        8123456 kB
MemFree:        5575456 kB
MemAvailable:    6000000 kB
Buffers:          51200 kB
Cached:          600000 kB
SwapCached:            0 kB
Active:          2048000 kB
Inactive:            0 kB
...

解释:

  • MemTotal:总内存大小。
  • MemFree:空闲内存。
  • MemAvailable:估计可用的内存。
  • Buffers:用于缓冲的内存。
  • Cached:用于缓存的内存。
  • SwapCached:用于交换缓存的内存。
  • Active:活动内存。
  • Inactive:非活动内存。

smemreport 工具

smemreport 是一个更高级的内存使用报告工具,可以生成详细的内存使用报告。

安装方法(以Ubuntu为例):

sudo apt-get install smemreport

使用方法:

sudo smemreport -f report.txt

输出特点:

  • 详细报告:包括每个进程的内存使用情况、共享内存、私有内存等。
  • 可读性强:报告以文本形式保存,便于查阅和分析。

dmidecode 命令

dmidecode 命令可以获取硬件信息,包括内存的详细信息。

使用方法:

sudo dmidecode --type memory

输出示例:

# dmidecode 3.2
SMBIOS 3.0 present.
Handle 0x0038, DMI type 17, 34 bytes
Memory Device
        Array Handle: 0x0037
        Error Information Handle: 0x0036
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMM_A1
        Bank Locator: BANK 0
        Type: DDR4
        Type Detail: Synchronous Unbuffered (Unregistered)
        Speed: 2400 MT/s
        Manufacturer: Samsung
        Serial Number: 12345678
        Asset Tag: Not Specified
        Part Number: M378A1K43CB2-CTD
        Rank: 2
        Configured Memory Speed: 2133 MT/s
...

解释:

  • Size:内存大小。
  • Type:内存类型(如DDR4)。
  • Speed:内存速度。
  • Manufacturer:内存制造商。
  • Serial Number:内存序列号。
  • Part Number:内存型号。

lsblkblkid 命令

虽然这些命令主要用于查看块设备信息,但也可以间接了解内存的使用情况,特别是当涉及到交换分区时。

使用方法:

lsblk
blkid

输出示例:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0    50G  0 disk 
├─sda1        8:1    0    50G  0 part /boot
└─sda2        8:2    0    40G  0 part /
sdb           8:16   0    2G  0 disk 
└─sdb1        8:17   0    2G  0 part [SWAP]

解释:

  • sdb1:这是一个交换分区,大小为2G。
  • blkid:可以查看设备的UUID、文件系统类型等信息。

sar 命令

sar 命令是 sysstat 包的一部分,用于收集和报告系统活动信息,包括内存使用情况。

安装方法(以Ubuntu为例):

sudo apt-get install sysstat

使用方法:

sar -r -f /var/log/syslog -s 12:00:00 -e 12:10:00

输出示例:

12:00:00 AM     KBMEMFREE   KBMEMUSED  %MEMUSED  KBSWAPFREE   KBSWAPUSED  %SWAPUSED
12:10:00 AM     5575456     2048000      25.00          2048000             0      0.00

解释:

  • KBMEMFREE:空闲内存大小(KB)。
  • KBMEMUSED:已用内存大小(KB)。
  • %MEMUSED:内存使用率(%)。
  • KBSWAPFREE:空闲交换空间大小(KB)。
  • KBSWAPUSED:已用交换空间大小(KB)。
  • %SWAPUSED:交换空间使用率(%)。

nmon 工具

nmon 是一个性能监控工具,可以实时监控系统的CPU、内存、网络等资源的使用情况。

安装方法(以Ubuntu为例):

sudo apt-get install nmon

使用方法:

nmon

输出特点:

  • 实时监控:可以实时查看系统的各项性能指标。
  • 交互式操作:可以通过键盘快捷键切换不同的监控页面。
  • 详细数据:提供详细的CPU、内存、网络等使用情况。

小编总结表格

工具/命令 功能描述 适用场景
free 显示内存和交换空间的使用情况 快速查看内存使用情况
top 实时显示系统进程和资源使用情况 动态监控内存和CPU使用情况
htop top的增强版,提供更友好的界面 需要更直观的实时监控界面
vmstat 提供虚拟内存的统计信息 需要详细的内存和交换空间统计信息
/proc/meminfo 提供详细的内存使用信息 需要深入了解内存使用细节
smemreport 生成详细的内存使用报告 需要详细的内存使用分析报告
dmidecode 获取硬件信息,包括内存的详细信息 需要了解硬件配置和内存规格
lsblk 查看块设备信息,包括交换分区 需要了解交换分区的使用情况
sar 收集和报告系统活动信息,包括内存使用情况 需要历史内存使用数据
nmon 实时监控系统的CPU、内存、网络等资源的使用情况 需要全面的系统性能监控

相关问答FAQs

Q1: free 命令中的 availablefree 有什么区别?

A1: free 命令中的 availablefree 都表示空闲的内存,但它们的计算方式有所不同。free 只考虑了当前未被任何进程使用的内存,而 available 则考虑了缓冲区和缓存的可回收性,也就是说,available 是估计系统在不杀死任何进程的情况下,可以立即分配给新进程的内存大小。available 通常比 free 更准确地反映了系统的实际可用内存。

Q2: 如何查看某个特定进程的内存使用情况?

A2: 要查看某个特定进程的内存使用情况,可以使用 tophtop 命令,并通过进程ID(PID)或进程名称进行筛选,使用 top 命令后,可以按 P 键按CPU使用率排序,找到目标进程;或者按 M 键按内存使用率排序,找到目标进程,在 htop 中,可以直接使用上下键选择进程,查看其详细信息,还可以使用 ps 命令结合 grep 来查找特定进程的内存使用情况,

ps aux | grep [process_name]

小伙伴们,上文介绍linux下如何查看内存使用情况的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

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

(0)
酷番叔酷番叔
上一篇 2025年8月15日 07:43
下一篇 2025年8月15日 07:50

相关推荐

  • linux 如何筛选文本

    在Linux系统中,文本筛选是日常运维、数据分析和日志处理的核心操作之一,通过灵活运用命令行工具,可以高效地从大量文本中提取所需信息,本文将详细介绍Linux中常用的文本筛选工具,包括grep、sed、awk、cut、sort及uniq,并通过实际案例说明其使用方法,帮助读者掌握文本筛选的核心技巧,grep:基……

    2025年10月5日
    900
  • linux 如何运行sql

    Linux 中,可通过安装数据库软件(如 MySQL、PostgreSQL 等),启动

    2025年8月14日
    2700
  • 如何查看Linux系统内存总容量?

    在Linux系统中,准确了解内存容量是系统管理和性能优化的基础,无论是排查内存不足问题,还是规划应用部署,掌握多种查看内存的方法都十分必要,本文将详细介绍通过命令行工具和系统文件查看内存大小的具体操作,帮助用户根据需求灵活选择,使用free命令查看内存信息free是Linux中最常用的内存查看工具,它以易读的格……

    2025年9月13日
    2600
  • Linux配置JDK环境变量?一步搞定!

    配置前的准备工作确认系统架构uname -m # 输出x86_64表示64位,i686表示32位下载合适JDK版本推荐从Oracle官网或OpenJDK下载对应版本的tar.gz包(如jdk-17_linux-x64_bin.tar.gz)解压JDK到目标目录sudo tar -zxvf jdk-17_linu……

    2025年7月12日
    5000
  • linux如何运行命令行参数

    Linux 中,运行命令行参数可在终端输入命令后,以空格分隔各参数。

    2025年8月17日
    3400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信