【每日一记11】linux系统内存爆满的快速解决办法!
  

sailyang 1538

{{ttag.title}}
首先用工具检查一下内存情况#
# 查看剩余内存
$ vmstat -s
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15884         207         573         145       15103       15179
Swap:             0           0           0
第一部分Mem行:
total 内存总数
used 已经使用的内存数
free 空闲的内存数
shared 当前已经废弃不用
buffers Buffer 缓存内存数
cached Page 缓存内存数

关系:total = used + free

第二部分(-/+ buffers/cache):
(-buffers/cache) used内存数 (指的第一部分Mem行中的used – buffers – cached)
(+buffers/cache) free内存数 (指的第一部分Mem行中的free + buffers + cached)

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数.

第三部分是指交换分区

大家看了上面,还是很晕.第一部分(Mem)与第二部分(-/+ buffers/cache)的结果中有关used和free为什么这么奇怪.

其实我们可以从二个方面来解释.
对操作系统来讲是Mem的参数.buffers/cached 都是属于被使用,所以它认为free只有232.
对应用程序来讲是(-/+ buffers/cach).buffers/cached 是等同可用的,因为buffer/cached是为了提高程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用.

  所以,以应用来看看,以(-/+ buffers/cache)的free和used为主.所以我们看这个就好了.另外告诉大家一些常识.Linux为了提高磁盘和内存存取效率, Linux做了很多精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache.前者针对磁盘块的读写,后者针对文件inode的读写.这些Cache能有效缩短了 I/O系统调用(比如read,write,getdents)的时间.

  记住内存是拿来用的,不是拿来看的.不象windows,无论你的真实物理内存有多少,他都要拿硬盘交换文件来读.这也就是windows为什么常常提示虚拟空间不足的原因.你们想想,多无聊,在内存还有大部分的时候,拿出一部分硬盘空间来充当内存.硬盘怎么会快过内存.所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准哦.

快速解决内存爆满办法#
要达到释放缓存的目的,我们首先需要了解下关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:

0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存

知道了参数后,我们就可以根据我们的需要,使用下面的指令来进行操作。

echo "3" > /proc/sys/vm/drop_caches
先使用sync将所有未写的系统缓存区存储至磁盘中,包含已经修改的i-node、已延迟的块I/O和读写映射文件,避免在释放缓存过程中丢失数据。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

小鱼儿 发表于 2024-1-7 11:22
  
每天学习一点点,每天进步一点点。
小西北 发表于 2024-1-7 11:22
  
每天学习一点点,每天进步一点点。
朱墩2 发表于 2024-1-7 11:22
  
每天学习一点点,每天进步一点点。
唐三平 发表于 2024-1-7 11:23
  
每天学习一点点,每天进步一点点。
鲤鲤 发表于 2024-1-7 11:32
  
每天学习一点点,每天进步一点点。
日出 发表于 2024-1-7 11:32
  
每天学习一点点,每天进步一点点。
梦境人生 发表于 2024-1-7 11:32
  
每天学习一点点,每天进步一点点。
小德 发表于 2024-1-7 11:38
  
每天学习一点点,每天进步一点点。
飞飞侠 发表于 2024-1-7 11:39
  
每天学习一点点,每天进步一点点。
发表新帖
热门标签
全部标签>
西北区每日一问
每日一问
技术盲盒
干货满满
技术笔记
新版本体验
信服课堂视频
GIF动图学习
排障那些事
功能体验
产品连连看
技术咨询
升级&主动服务
标准化排查
2023技术争霸赛专题
网络基础知识
运维工具
每周精选
自助服务平台操作指引
答题自测
专家问答
SDP百科
秒懂零信任
高手请过招
MVP
安装部署配置
问题分析处理
项目案例
存储
信服圈儿
S豆商城资讯
通用技术
以战代练
畅聊IT
技术圆桌
在线直播
升级
安全攻防
上网策略
测试报告
日志审计
流量管理
每日一记
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
技术晨报
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记

本版达人

adds

本周建议达人

无极剑圣

本周分享达人

新手25642...

本周提问达人