当前位置: 首页 > news >正文

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 频繁变动。
解决:优化内存使用或增加物理内存。
 

http://www.xdnf.cn/news/689221.html

相关文章:

  • windows安装启动elasticsearch
  • Linux之高效文本编辑利器 —— vim
  • 家用热水器用户行为分析与事件识别
  • 微信小程序页面嵌套web-view点击系统导航返回时进行弹窗处理
  • nt!CcGetVacbMiss函数分析之设置好nt!_VACB然后调用函数nt!SetVacb
  • LiveWallpaperMacOS:让你的 Mac 桌面动起来
  • Mac完美终端(iterm2 + oh my zash + tmux+ControlMaster)
  • Axure项目实战:运输统计页引入echarts实现高保真设计(JS代码ctrl+c ctrl+v懂得来)
  • OpenHarmony定制系统组合按键(二)
  • Pytest 是什么
  • 进阶知识:Selenium底层原理深度解析
  • Grafana-Gauge仪表盘
  • 5.28 后端面经
  • docker部署redis mysql nacos seata rabbitmq minio onlyoffice nginx实战
  • 20250528-C#知识:枚举
  • 20250528-C#知识:结构体
  • C# Socket对象创建方式详解
  • C接口 中文字符问题
  • 针对C++开发工具推荐及分析(涵盖IDE、编译器、调试工具和辅助工具)
  • 电脑开机后出现bootmgr is conmpressed原因及解决方法
  • 【Redis】基本架构
  • Dockerfile 构建优化的方法
  • 智变与重构:AI 赋能基础教育教学的范式转型研究报告
  • 理解 Vue 2 的响应式原理:数据劫持与依赖收集的背后
  • 第八天:面向对象编程
  • React---day3
  • CVE-2017-12629-XXE源码分析与漏洞复现
  • 设计模式24——访问者模式
  • 【AUTOSAR OS】 保护功能解析:从原理到应用与源代码解析(下篇)
  • 《Python+AI如何颠覆传统文书审查模式》