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

sailyang 1566

{{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技术争霸赛专题
解决方案
sangfor周刊
项目案例
通用技术
秒懂零信任
高手请过招
升级&主动服务
测试报告
社区帮助指南
纪元平台
技术晨报
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
问题分析处理
流量管理
每日一记
云计算知识
用户认证
VPN 对接
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
答题榜单公布
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记

本版达人

adds

本周建议达人

无极剑圣

本周分享达人

新手25642...

本周提问达人