如何优化CLinux系统的内存使用率?

网友投稿 152 2025-08-23 21:02:53

在Linux系统中,内存使用率可以通过多种命令查看,例如free、top、vmstat和htop等。

内存使用率

Linux系统提供了多种命令和工具来查看内存使用情况,以下是一些常用的方法:

free命令

free命令是最常用的检查内存使用情况的命令,它显示了系统上的总内存、已用内存、空闲内存、共享内存、缓冲区缓存以及可用内存的信息。

free -h

输出示例如下:

total used free shared buff/cache available Mem: 3936 1087 252 130 2596 2427 Swap: 0 0 0

各列含义如下:

total: 应用可以使用的内存总数。

used: 已经被使用的内存(计算方法:total free buffers cache)。

free: 空闲的/未被使用的内存。

shared: 这一列通常可以忽略,仅用于向后兼容。

buff/cache: 内核缓存、页面缓存和slab。

available: 可用来启动新应用的估计可用内存,不包括交换内存。

/proc/meminfo文件

/proc/meminfo文件是一个虚拟文件,其中包含有关内存使用情况的各种实时信息,它以千字节为单位显示内存统计信息。

cat /proc/meminfo

该文件包含一系列关于系统内存和交换内存使用情况的信息。

MemTotal: 4030592 kB MemFree: 401804 kB MemAvailable: 2507504 kB ...

这些信息可以被解析并在shell脚本中使用。

top命令

top命令是一个实时显示系统进程信息的工具,同时显示系统概要,包括内存使用率,输入top命令即可运行:

top

输出头部包括以下信息:系统中内存、空闲内存、被使用内存以及交换内存等。%MEM一列显示每个运行中的进程被使用的共享内存占可用物理内存的比例。

vmstat命令

vmstat命令报告虚拟内存统计信息,包括进程、内存、分页、块IO、磁盘和CPU功能的信息。

vmstat

输出示例如下:

Procs ------------Boo-Time-- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 3936000 2596000 1087000 130000 0 0 0 0 0 0 0 0 0 0

各字段含义如下:

r: 可运行进程的数量(正在运行或等待运行时)。

b: 处于不间断休眠状态的进程数。

swpd: 使用的虚拟内存量。

free: 空闲内存量。

buff: 用作缓冲区的内存量。

cache: 用作缓存的内存量。

inact: 非活动内存量。

active: 活动内存量。

si: 从磁盘交换的内存量(/s)。

so: 交换到磁盘的内存量(/s)。

bi: 从块设备接收的块(blocks/s)。

bo: 发送到块设备的块(blocks/s)。

in: 每秒的中断数,包括时钟。

cs: 每秒上下文切换数。

us: 用户时间(运行非内核代码所花费的时间)。

sy: 系统时间(运行内核代码所花费的时间)。

id: 闲置时间,在Linux 2.5.41之前,这包括IO等待时间。

wa: 等待IO所花费的时间,在Linux 2.5.41之前,包含在空闲中。

st: 从虚拟机中窃取的时间,在Linux 2.6.11之前,未知。

smem命令

smem是一个工具,可以提供大量Linux系统内存使用情况的报告,与现有工具不同,smem可以报告比例集大小(PSS)、唯一集大小(USS)和常驻集大小(RSS)。

smem -tk

如果提示未找到命令,请执行“yum install smem”进行安装。

htop命令

htop命令是Linux/Unix系统的交互式进程查看器,类似于top命令,但允许您垂直和水平滚动以查看运行系统的所有进程,htop带有Visual Colors,并且在跟踪系统性能时非常明显。

htop

ps_mem命令

ps_mem是一个简单的Python脚本,允许您准确地获取Linux中程序的核心内存使用情况,它可以确定每个程序(而不是每个进程)使用多少RAM。

sudo ps_mem

输出将会以升序显示包括每一个运行程序的内存使用率。

Private + Shared = RAM used Program ... 11.9 MiB + 20.2 MiB = 32.1 MiB nginx (4) 8.2 MiB + 42.4 MiB = 50.6 MiB systemd-journald 55.8 MiB + 307.2 MiB = 363.0 MiB php-fpm7.4 (6) 233.9 MiB + 234.0 MiB = 467.9 MiB redis-server 578.2 MiB + 578.6 MiB = 1.1 GiB mysqld 2.2 GiB

当你想要找到到底是哪一个程序占用你的系统内存的大部分时,这个脚本非常有用。

sar命令

sar命令用于收集和报告系统活动详细信息。

sar -r

Linux系统上有各种可用的工具和命令来监视内存的使用率和系统资源利用率,根据具体需求和实际情况选择合适的工具,如free、top、vmstat、htop等。

各位小伙伴们,我刚刚为大家分享了有关“clinux内存使用率”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

文章来源网络,作者:运维

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:百度智能小程序推出重磅功能,支持一键生成小程序
下一篇:探索微信小程序框架的潜力与应用前景,开启开发新篇章
相关文章