千家信息网

Linux内存、Swap、Cache、Buffer是什么

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,今天小编给大家分享一下Linux内存、Swap、Cache、Buffer是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文
千家信息网最后更新 2024年10月19日Linux内存、Swap、Cache、Buffer是什么

今天小编给大家分享一下Linux内存、Swap、Cache、Buffer是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

在Linux系统中 buffercache内存上分出来的空间,swap分的是磁盘上的空间。

1. 通过free命令看Linux内存
Linux内存、Swap、Cache、BufferLinux内存、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、BufferLinux内存、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 –> 改回默认值

以上就是"Linux内存、Swap、Cache、Buffer是什么"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

内存 缓存 数据 大小 部分 内容 硬盘 设计 磁盘 空间 知识 篇文章 就是 症状 系统 很大 之间 命令 大部分 常用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 甘肃软件开发专业 gps人脸识别考勤机软件开发 u8账套对应的数据库不存在 服务器能证明项目的安全性 手机老是显示无法连接服务器 ip地址是网络技术的应用吗 我的世界服务器国际版怎么加账号 数据库自定义函数能返回多个值吗 elsevier全文期刊数据库 工业网络安全工作总结 管理系统软件开发哪家正规 腾讯qq网络安全中心 下一代网络技术 中国电信 企业架构业务数据网络技术 天津市盛瑞通网络技术 java 数据库自动重连 妄想山海捏脸数据库狼人 服务器安全远程桌面保护 4路8核服务器 网络安全专题讲座的英语 三明网络安全保护日 华为运营商服务与软件开发管理部 南京多邦软件开发公司程新军 上海德钻网络技术有限公司 网络安全 国旗下的讲话 烟台云帆网络技术 windows 服务器建立网站 怎么找出数据连接到服务器 双机热备和数据库的区别 华东网络安全
0