我们用free命令查看系统内存使用情况的时候会发现:
#free -m
total used free shared buffers cached
Mem: 24359 11240 13119 0 0 10706
-/+ buffers/cache: 533 23826
Swap: 4095 0 4095
1、total = used + free
2、cached比较大,甚至我遇见过内存剩余只有7M的情况,这个时候cached非常大,基本上接近等于total了,这个时候打开文件或者传输文件的时候可用内存很小,程序可能就会用到交换分区swap了,所以会发现机器速度变慢的情况
如何解决这个导致机器变慢的问题呢?
罪魁祸首就是内存都被cached了,free的基本没有了
所以我们应该想想如何把cached内存释放出来
重启机器肯定是可以解决,但是我们肯定是不能用这样的办法
释放方法有三种(系统默认值是0,释放之后你可以再改回0值):
To free pagecache: echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes: echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes: echo 3 > /proc/sys/vm/drop_caches
经常使用rsync传输大量数据的朋友可能遇到过类似的情况:开始是传输大量文件过去,到后来传输的数据并不大,但就是很慢很慢,到对边的服务器上看会发现在终端输入命令都不会觉得慢,但看内存使用情况时,发现free的内存很少,几乎接近零了,我觉得可能就是内存都被cached了导致的
为什么我们要释放掉cached内存?因为我们用rsync传输大量数据的时候,linux系统将一部分文件的信息缓存在内存中,这样是可以减少频繁使用的文件的磁盘IO时间占用,当我们传完一批文件后,我们要传输另外一批文件过去,是完全不同的文件或者文件的内容发生了变化,内存中缓存的文件也不是我们需要的了,我们需要清空缓存,腾出内存用来传输下一批文件使用,这个时候我们急切的需要看到更多的内存是free状态的。
在这样的前提下,我们有必要自己手动清空缓存,腾出更多可用内存来
注意:在清空缓存前我们需要在linux系统中执行一下sync命令,将缓存中的未被写入磁盘的内容写到磁盘上
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
分享到:
相关推荐
Linux服务器在发现内存不足时,会自动清理cached区域,释放内存,然后继续增大cache,free继续减少。其实手动降低内存使用率的方法也就是图一时之快而已
Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如: Mem: 4086496k total, 4034428k used, 52068k free, 112620k buffers Swap: 4192956k total,...
jar包,亲测可用
Ida database for cached server.
资源分类:Python库 所属语言:Python 资源全名:cached-1.0.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
cached(缓存):是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程 buffer(缓冲):是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定...
Fast Priority Queues for Cached Memory.
解释一下Linux上free命令的输出。 下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如: FO[2][1] = 24677460 FO[3][2] = 10321516 1 2 ...
apc cached for php 5.3.28
cached-property, 在类中,用于缓存属性的修饰器 缓存属性 用于在类中缓存属性的修饰器。为什么?使时间或者计算的昂贵属性快速而简便地缓存。因为我厌倦了把这个代码从非网络项目复制到非web项目。我需要在 python ...
flutter_cached_pdfview 用于显示iOS和Android的本机PDF视图的软件包,支持从其他资源(例如Path,Asset或Url)打开并对其进行缓存。 支持= [ ]; 从路径打开Pdf(本地文件) 从资产打开PDF 从URl中打开Pdf并将...
0.0% hi 0.0% si 第五行以后物理使用的物理空闲内存总量 377544k buffers Swap: 18481144k total 320k used 18480824k free 7835708k cached 用作交换区总量 使用的交换区总量 空闲交换区总量 缓冲的交换区总量。...
linux提供了很多命令来协助我们快速定位到错误,free命令是Linux最常用的命令之一:它可以查看系统的内存状况,包括服务器的总内存,已经使用的内存和剩下未被使用的内存,以及缓冲区和缓存各自占用的内存情况。...
sql学习 session_cached_cursors.sql
下载编译安装MySQL-python-1.2.5.zip需要各种依赖,安装完成后,取出egg文件可离线安装,已编译MySQL-python模块,可离线配置
Laravel开发-cached-embed Laravel 5.5包缓存来自https://github.com/oscarotero/embed的嵌入信息
缓存属性( cached_property )是一个非常常用的功能,很多知名Python项目都自己实现过它。我举几个例子: bottle.cached_property Bottle是我最早接触的Web框架,也是我第一次阅读的开源项目源码。最早知道 cached_...
ACE_Allocator,ACE中的分配器类的接口类;...ACE_Cached_Allocator,预先分配内存池,其中含有特定数目和大小的内存chunk;ACE_New_Allocator,为C++ new和delete操作符提供包装的分配器,内部使用new和delete操作符
S3文件访问抽象,提供内存和磁盘缓存层。 如果要减少用于服务(半)静态文件的s3访问量,则在例如lambda函数中很有用。 它能做什么 访问抽象以访问AWS S3上的JSON和GZipped数据 两层缓存(内存和磁盘) 允许您定义...
yarn add cached-execute # npm install cached-execute 例子 const Promise = require ( 'bluebird' ) const { CachedExecute , CachePolicy } = require ( './src' ) const cache = new CachedExecute ( { host ...