linux 性能优化-内存

1 内存性能指标

1.1 内存使用率: 显示系统已使用和可用内存的占比。

1.2 缓存命中率:显示内存缓存访问的成功率。高的缓存命中率表示性能高。

1.3 交换空间使用: 显示系统中交换分区的使用情况,频繁的交换操作可能导致性能下降。

1.4 页面缺失率:显示系统中发生的页面缺失(内存页不在物理内存中)的频繁,高的页面缺失率可能导致性能下降。

2 内存分析工具

2.1 swapon

root@u24-ebpf-100:~# swapon -s

Filename Type Size Used Priority

/swap.img file 3958780 0 -2

NAME:交换设备或文件的路径。

TYPE:类型(partition 或 file)

SIZE:交换空间总大小。

USED:已使用的交换空间。

PRIORITY:优先级(数值越高,优先级越高,-1 表示默认)

2.2 free

root@u24-ebpf-100:~# free -h

total used free shared buff/cache available

Mem: 3.8Gi 485Mi 3.3Gi 1.5Mi 249Mi 3.3Gi

Swap: 3.8Gi 0B 3.8Gi

Mem 行(物理内存)

total:系统总物理内存。

used:已使用的内存(包括缓存和缓冲区)。

free:完全未使用的内存。

shared:被共享内存占用的量(如 tmpfs)。

buff/cache:被内核缓冲(Buffer)和缓存(Cache)占用的内存。

available:系统可用内存(估算值,包含未被使用的缓存和缓冲区)。

Swap 行(交换空间)

total:交换空间总量。

used:已使用的交换空间。

free:未使用的交换空间。

2.3 vmstat

vmstat 间隔 次数

root@u24-ebpf-100:~# vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- -------cpu-------

r b swpd free buff cache si so bi bo in cs us sy id wa st gu

1 0 0 3427764 20488 235652 0 0 154 13 125 0 1 1 98 0 0 0

字段组 字段 说明

procs

r 等待运行的进程数(若持续 > CPU 核心数,表示 CPU 资源不足)。

b 处于不可中断睡眠状态的进程数(通常等待 I/O 完成)。

memory

swpd 已使用的交换空间总量(单位:KB)。

free 空闲的物理内存(单位:KB)。

buff 用作缓冲区的内存(缓存磁盘块的临时存储)。

cache 用作文件缓存的内存(加速文件读取)。

swap si 每秒从磁盘换入的内存量(swap-in,单位:KB/s)。

so 每秒换出到磁盘的内存量(swap-out,单位:KB/s)。

io bi 每秒从块设备接收的块数(块读,单位:块/s)。

bo

每秒发送到块设备的块数(块写,单位:块/s)。

system

in 每秒中断次数(包括时钟中断)。

cs 每秒上下文切换次数(进程/线程切换)。

cpu

us 用户态程序占用的 CPU 时间百分比。

sy 内核态程序占用的 CPU 时间百分比。

id CPU 空闲时间百分比。

wa CPU 等待 I/O 完成的时间百分比(高值表示磁盘瓶颈)。

st 被虚拟机监控程序(Hypervisor)占用的 CPU 时间百分比(仅虚拟化环境)。

案例一:发现内存不足

现象:swpd 持续增长,si 和 so 频繁变动。

解决:优化内存使用或增加物理内存。

相关推荐
HLC++19 分钟前
Linux的进程间通信
android·linux·服务器
groundhappy4 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕5 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫6 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生6 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.117 小时前
linux基础IO
linux·运维·服务器
BelongPanda9 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯9 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983410 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器
yunwei3710 小时前
eBPF 教程:检查 exec 后真正安装的可执行镜像
linux·开源