阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux内存、Swap、Cache、Buffer

267次阅读
没有评论

共计 1838 个字符,预计需要花费 5 分钟才能阅读完成。

导读 在 Linux 系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好, 但是凡事也有例外。

Linux 内存、Swap、Cache、Buffer

1. 通过 free 命令看 Linux 内存

Linux 内存、Swap、Cache、Buffer

total:总内存大小。

used:已经使用的内存大小 (这里面包含 cached 和 buffers 和 shared 部分)。

free:空闲的内存大小。

shared:进程间共享内存 (一般不会用,可以忽略)。

buffers:内存中写完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。

cached:内存中读完缓存起来内容占的大小 (这部分是为了下次查询时快速返回)。

-/+ buffers/cache 看做两部分:

-buffers/cache:正在使用的内存大小 (注意不是 used 部分,因为 buffers 和 cached 并不是正在使用的,组织和人民需要是它们是可以释放的),其值 =used-buffers-cached。

+buffers/cache:可用的内存大小 (同理也不是 free 表示的部分),其值 =free+buffers+cached。

Swap:硬盘上交换分区的使用大小。

设计的目的就是当上面提到的 +buffers/cache 表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当做虚拟内存来使用。

2. Buffer 和 Cache 介绍

Linux 内存、Swap、Cache、Buffer

Cache(缓存),为了调高 CPU 和内存之间数据交换而设计,Buffer(缓冲) 为了提高内存和硬盘 (或其他 I / O 设备的数据交换而设计)。

Cache 主要是针对读操作设计的,不过 Cache 概念可能容易混淆,我理解为 CPU 本身就有 Cache,包括一级缓存、二级缓存、三级缓存,我们知道 CPU 所有的指令操作对接的都是内存,而 CPU 的处理能力远高于内存速度,所以为了不让 CPU 资源闲置,Intel 等公司在 CPU 内部集成了一些 Cache,但毕竟不能放太多电路在里面,所以这部分 Cache 并不是很大,主要是用来存放一些常用的指令和常用数据,真正大部分 Cache 的数据应该是占用内存的空间来缓存请求过的数据,即上面的 Cached 部分 (这部分纯属个人理解,正确与否有待考证)。

Buffer 主要是针对写操作设计的,更细的说是针对内存和硬盘之间的写操作来设计的,目的是将写的操作集中起来进行,减少磁盘碎片和硬盘反复寻址过程,提高性能。

在 Linux 系统内部有一个守护进程会定期清空 Buffer 中的内容,将其写入硬盘内,当手动执行 sync 命令时也会触发上述操作。

3. 常见症状

症状一 :在 Linux 中频繁存取文件,物理内存很快用光,而 cached 一直在增长。

解释:Linux 会对每次请求过的数据缓存在 cache 里,好处就是 CPU 的处理速度远远高于内存,所以在 CPU 和内存通讯的时候可以快速从 cache 中命中结果返回。

症状二 :Swap 被占用。

解释:内存可能不够了,才会占 Swap,所以 Swap 可以作为服务器监控的一项指标,引起注意。

4. 手动清理 Swap 和 buffers/cache
(1) 清理 Swap
swapoff -a && swapon -a

操作说明:如果已经使用了 Swap,且当前清空下 +buffers/cache 还有空间,在执行 swapoff - a 操作时,会触发把 Swap 中的内容交换到内存中,数据不会丢失。

(2) 清理 buffers/cache:
sync; sync; sync;&& echo 3 >/proc/sys/vm/drop_caches  
sleep 2  
echo 0 > /proc/sys/vm/drop_caches

操作说明:

sync–> 将缓存的内从写回到硬盘中;

echo 3 >/proc/sys/vm/drop_caches–> 修改 drop_caches 的值为 3,默认为 0,改为 3 系统会清理缓存的内容;

sleep 2 –> 等一下,防止上一步没执行完;

echo 0 >/proc/sys/vm/drop_caches –> 改回默认值

5. 总结

通过上面的分析可以知道,当空闲物理内存不多时,不一定表示系统运行状态很差,因为内存的 cache 及 buffer 部分可以随时被重用,在某种意义上,这两部分内存也可以看作诗额外的空闲内存。

swap 如果被频繁调用,bi,bo 长时间不为 0,则才是内存资源是否紧张的依据。通过 free 看资源时,实际主要关注 -/+ buffers/cache 的值就可以知道内存到底够不够了。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计1838字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7803378
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
免费领取huggingface的2核16G云服务器,超简单教程

免费领取huggingface的2核16G云服务器,超简单教程

免费领取 huggingface 的 2 核 16G 云服务器,超简单教程 前言 HuggingFace.co...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装Black群晖DSM7.2系统安装教程(在Vmware虚拟机中、实体机均可)!

安装 Black 群晖 DSM7.2 系统安装教程(在 Vmware 虚拟机中、实体机均可)! 前言 大家好,...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板

手把手教你,购买云服务器并且安装宝塔面板 前言 大家好,我是星哥。星哥发现很多新手刚接触服务器时,都会被“选购...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...