-
服务器内存缓存清理
2020-04-27 10:45:261、内存查看 free -h #以GB为单位展示当前系统内存数据 ...2、直接清除缓存 echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches #说明 #ec...1、内存查看
free -h #以GB为单位展示当前系统内存数据 free -m #以MB为单位展示当前系统内存数据
2、直接清除缓存
echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches #说明 #echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache,当前产链服务器缓存主要在这里。 #echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache。 #echo 3 > /proc/sys/vm/drop_caches:表示清除pagecache和slab分配器中的缓存对象。
3、脚本清除
(1)root账号登陆服务器
(2)新建文件夹 /opt/clean和/opt/clean/logs
(3)新建freemem.sh脚本
(4)给freemem.sh脚本赋权7773.1、脚本内容
#! /bin/sh used=`free -m | awk 'NR==2' | awk '{print $3}'` free=`free -m | awk 'NR==2' | awk '{print $4}'` echo "===========================" >> /opt/clean/logs/mem.log date >> /opt/clean/logs/mem.log echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /opt/clean/logs/mem.log if [ $free -le 4000 ] ; then sync && echo 1 > /proc/sys/vm/drop_caches used_ok=`free -m | awk 'NR==2' | awk '{print $3}'` free_ok=`free -m | awk 'NR==2' | awk '{print $4}'` echo "Memory usage after | [Use:${used_ok}MB][Free:${free_ok}MB]" >> /opt/clean/logs/mem.log echo "OK" >> /opt/clean/logs/mem.log else echo "Not required" >> /opt/clean/logs/mem.log fi exit 1
3.2、设置脚本定时执行
(1)使用crontab -e命令编辑crontab,文末添加
0 6 * * * /opt/clean/freemem.sh # (0 6 * * * )为cron表达式,可根据实际需求自行调整时间
(2)重启crond服务
/sbin/service crond restart
-
Android Glide数据更新及内存缓存、硬盘缓存清理
2016-10-19 19:00:24Android Glide数据更新及内存缓存、硬盘缓存清理事项Android的Glide在加载图片时候内部默认使用了缓存机制,Glide的缓存机制分为两级,第一级是内存缓存,然后第二级是硬盘缓存。缓存的过程首先是在内存中缓存,然后...Android Glide数据更新及内存缓存、硬盘缓存清理
Android的Glide在加载图片时候内部默认使用了缓存机制,Glide的缓存机制分为两级,第一级是内存缓存,然后第二级是硬盘缓存。缓存的过程首先是在内存中缓存,然后将加载的图片资源缓存到硬盘,这样就可以在随后的再次加载中使用缓存了,Glide使用缓存时候首先要检查内存这一层级是否缓存了相应的缓存,如果有,则直接使用,如果没有,则深入到硬盘缓存中检查是否有,如果有,则加载之,如果到这一步骤还没有,那么就只能作为一个全新的资源加载了。
从这个过程中,Glide使用缓存无疑大大提高了上层代码的性能,但是,有些情况下,这种缓存策略则可能并不适用。比如,APP中有一个头像,该头像是从一个固定链接http://xxx.xxx.jpg读取,假设代码第一次读取后,缓存到了本地。然而,几分钟后该图片更新了,但是链接仍然是http://xxx.xxx.jpg。随后,假设,三小时或三天或三十天后同样的链接http://xxx.xxx.jpg读取,此时Glide加载时候检查缓存,发现针对http://xxx.xxx.jpg的资源已经缓存,那么Glide不再从服务器读取,而是直接加载本地缓存使用,这样就造成了Glide加载出来的图片资源不是最新的。
总结:Glide的缓存机制虽然提升了性能,但是如果针对固定资源路径的请求,将导致请求得到的资源是缓存的,这样就不能保证最新。换句话说,如果给定资源地址下的资源的频繁更新的,而资源地址是固定,则Glide此时的缓存策略就显得不太合适。
导致这种问题的原因有二:
一, Glide本身使用了缓存。
二, Glide在缓存资源使用<K,V>键值对模型,如果每次都使用http://xxx.xxx.jpg这个URL,那么键相同,意味着Glide匹配键时候,永远可以从缓存中返回键对应的值。针对这个问题的解决方案:
解决方案1:
从Glide提供的缓存键值对<K,V>结构模型入手,重写缓存的<K,V>键值策略,就可以避免相同资源地址下资源更新问题了,但是这种方案实现比较复杂,也无十分必要。不推荐,除非必需。解决方案2:
Glide.get(this).clearMemory();
清理内存中的缓存。Glide.get(this).clearDiskCache();
清理硬盘中的缓存。以上两个方法清除全局的内存缓存和硬盘缓存,虽然可以一劳永逸的解决缓存导致的资源陈旧问题,但是将严重影响全局性能,所以慎用,除非是在APP整体要做全新的开始或者恢复原始状态,否则尽量避免使用。
解决方案3(推荐):
代码形如:ImageView image= (ImageView) findViewById(R.id.image); Glide.with(this).load("http://avatar.csdn.net/9/7/A/1_zhangphil.jpg") .skipMemoryCache(true) .diskCacheStrategy(DiskCacheStrategy.NONE) .into(image);
关键代码:skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE)
skipMemoryCache(true) ,跳过内存缓存。
diskCacheStrategy(DiskCacheStrategy.NONE) ,不要在disk硬盘中缓存。这两个函数同时联合使用,使得Glide针对这一次的资源加载放弃内存缓存和硬盘缓存,相当于一次全新的请求。这样就迫使Glide从给定的资源地址发起全新的数据加载,而非从旧有的缓存中取缓存使用。
附录:
1,《Android图片加载与缓存开源框架:Android Glide》链接:http://blog.csdn.net/zhangphil/article/details/45535693
2,《Android Glide加载图片时转换为圆形、圆角、毛玻璃等图片效果》链接:http://blog.csdn.net/zhangphil/article/details/52806374 -
Linux cached内存简析 清理内存 内存缓存
2014-04-24 21:55:31测试MBS系统,AP的weblogic 只是设置了1.5G内存,但是经过3次...Linux与Windows不同,会存在缓存内存,通常叫做Cache Memory。有些时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存会很少。 www.2ct测试MBS系统,AP的weblogic 只是设置了1.5G内存,但是经过3次稳定性测试,内存的利用率达到99%。nmon的监控揭发发现存在5.6G的cached内存,下面介绍一下:Linux与Windows不同,会存在缓存内存,通常叫做Cache Memory。有些时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存会很少。 www.2cto.com什么是Cache Memory(缓存内存):当你读写文件的时候,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有内存可用。如果你希望手动去释放Cache Memory(缓存内存)的话也是有办法的。释放Cache Memory(缓存内存):用下面的命令可以释放Cache Memory:[rootmin@localhost~]#echo 3 > /proc/sys/vm/drop_cachesLinux中如何释放cache内存因为LINUX的内核机制,一般情况下不需要特意去释放已经使用的cache。这些cache起来的内容可以增加文件以及的读写速度。先说下free命令怎么看内存[rootmin@localhost~]# freetotal used free shared buffers cachedMem: 515588 295452 220136 0 2060 64040-/+ buffers/cache: 229352 286236Swap: 682720 112 682608其中第一行用全局角度描述系统使用的内存状况:total——总物理内存 www.2cto.comused——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存free——完全未被使用的内存shared——应用程序共享内存buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)cached——缓存,用于已打开的文件注意:total=used+freeused=buffers+cached (maybe add shared also)第二行描述应用程序的内存使用:前个值表示-buffers/cache——应用程序使用的内存大小,used减去缓存值后个值表示+buffers/cache——所有可供应用程序使用的内存大小,free加上缓存值注意-buffers/cache=used-buffers-cached+buffers/cache=free+buffers+cached第三行表示swap的使用: www.2cto.comused——已使用free——未使用cache释放:1. To free pagecache:[rootmin@localhost~]#echo 1 > /proc/sys/vm/drop_caches2. To free dentries and inodes:[rootmin@localhost~]#echo 2 > /proc/sys/vm/drop_caches3. To free pagecache, dentries and inodes:[rootmin@localhost~]#echo 3 > /proc/sys/vm/drop_caches说明,释放前最好sync一下,防止丢数据 -
Android-一键清理开源版包括内存加速缓存清理自启管理软件管理等。
2019-08-13 05:34:24superCleanMaster - 一键清理开源版,包括内存加速,缓存清理,自启管理,软件管理等。 -
Android 一键加速(内存清理、缓存清理) 源码
2016-12-26 16:15:32http://download.csdn.net/detail/yyh352091626/9196107 基于 LeBron_Six 源码修改,先前的代码只能在Android studio上运行,这几天发了点时间移植到eclipse ,只留下了内存清理和缓存清理。其他的都屏蔽了,如果需要... -
清理内存缓存
2018-03-20 14:24:44首先,/proc/sys/vm/drop_caches的值,默认为0 手动执行sync命令 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和...再次执行free查看内存已释放完毕。首先,/proc/sys/vm/drop_caches的值,默认为0手动执行sync命令命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件#sync#echo 3 > /proc/sys/vm/drop_caches#cat /proc/sys/vm/drop_caches3将/proc/sys/vm/drop_caches值设为3再次执行free查看内存已释放完毕。 -
centos 清理内存缓存
2015-11-18 14:11:00读写文件时,Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这就是Cache Memory(缓存内存)。即使程序运行结束后,Cache Memory也不会自动释放。这就会导致程序频繁读写文件后,可用物理内存会很少。... -
Android 6.0系统 内存和缓存清理及相关动画
2018-12-24 17:01:11最近,做了一个清理android系统(基于6.0的一个定制系统)的内存等清理相关的模块,里面涉及到该系统的运行的相关进程清理和各个应用的缓存清理(提前说一下,需要系统签名,然后push 到系统目录中);由于6.0后,非... -
linux 清理内存缓存
2018-12-25 10:59:00释放缓存,使用一组共三条命令: echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_caches 转载于:... -
python清理浏览器缓存_苹果手机怎么清理内存垃圾清理 内存垃圾清理方法
2020-12-31 22:18:19二、删除不必要应用 我们的手机里常常会下载各种各样的应用,有些应用会占用我们的手机内存,产生一定的垃圾,所以要定时清理删除不必要的应用,进入手机的【设置】-【通用】-【iPhone储存空间】-【卸载未使用的... -
iOS学习之路:ARC内存清理&缓存清理&效率优化
2014-09-23 11:07:56最近项目中遇到了很多关于内存泄露和缓存清理的问题,尤其是ARC这块内存什么时候释放,以及UIWebview的缓存清理,消耗了很多时间,特别做个总结: 1. 关于ARC内存释放猜想 我们都知道在ARC机制下,我们不需要手动... -
linux 服务器内存详解 +清理内存缓存
2017-08-29 15:01:00-b,-k,-m,-g show output in bytes, KB, MB, or GB k,m,g显示输出字节,KB,MB,或GB -h human readable output (automatic unit scaling) 可读输出(自动单元缩放) ...显示详细的低内存和高内存... -
android清理内存缓存和文件缓存
2016-06-04 08:57:59本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等。我们开发产品的时候,可能会有这样的一个需求清除应用内缓存... -
centos内存手动清理缓存
2016-09-21 10:32:19Linux释放内存释放网页缓存(To free pagecache):sync;echo1>/proc/sys/vm/drop_caches释放目录项和索引(To free dentries and inodes):sync;echo2>/proc/sys/vm/drop_caches释放网页缓存,目录项和索引(To ... -
Linux系统清理内存缓存
2020-07-10 10:09:51store_memory` parameter when starting Ray 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching 因此我们很有必要手动清理系统缓存释放内存。 我们在清理... -
清理内存的缓存
2018-10-26 09:22:00做清理之前最好做一下存盘 sync 清理缓存 echo 1 > /proc/sys/vm/drop_caches 查看清理后的内存 free -h 转载于:https://www.cnblogs.com/xiaoyaoren/p/9854500.html -
服务器缓存过多怎么清理_集中式内存缓存Guava Cache
2021-01-09 23:08:32背景缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日长开发有很多场合,有一些数据量不是很大,不会经常改动,并且访问非常频繁。但是由于受限于硬盘IO的性能或者远程网络等... -
Android内部存储和外部存储以及缓存清理和内存清理!
2018-07-19 17:04:25android内部的存储结构和路径获取方法: ... 清除本地数据和缓存: ... 计算缓存和内存数据的大小: http://blog.csdn.net/wf_zeng/article/details/9378065 计算缓存大小以及... -
清理linux 系统内存缓存的方法
2020-11-10 17:56:57发现是内存的缓存占用比率高,需要清除一下 清除方法 [root@guanli1 ~]#cat /proc/sys/vm/drop_caches查看 0 [root@guanli1 ~]#echo 1 > /proc/sys/vm/drop_caches清除缓存 [root@guanli1 ~]#to... -
liunx java清理缓存_centos7释放内存|yum清理缓存与释放内存
2021-03-03 16:41:31腾讯云服务器内存占用过高,安装的是centos7系统,准备对centos7释放内存,发现使用yum清理缓存与释放内存非常的方便,先使用free -m命令来查看centos7系统剩余了多少内存,准备清理掉,如下:[root@VM_230_32_...
-
100ReactWebsites_12-源码
-
采用空心阴极放电灯的激光感生荧光技术测量氖和铜原子高激发态寿命
-
java对内存的使用跟踪是_jps、jmap、jstack已经Out了,使用jcmd进行JVM性能和内存跟踪微调 -DZone Java...
-
基于SSM实现的房屋租赁系统【附源码】(毕设)
-
java treemap 方法_Java Treemap放置方法
-
C和C++课程
-
java半解释半编译_【Java学习】java语言的执行模式--半编译和半解释型
-
2021-03-04
-
java遍历文件夹下所有图片_遍历指定文件夹下的所有图片,并复制到指定目录下...
-
MySQL Router 实现高可用、负载均衡、读写分离
-
基于电吸收调制器和频率调制器的超宽扁平光学频率梳*的生成
-
MySQL 触发器
-
pxh MySQL_数据库组件 Hxj.Data (三十一)(MySQL篇)
-
2021年 系统分析师 系列课
-
java获取web-inf路径_java获取WEB-INF目录绝对路径 | 学步园
-
MySQL 高可用工具 heartbeat 实战部署详解
-
Web应用的成功之路–产品早期的原型设计与用户测试
-
Amoeba 实现 MySQL 高可用、负载均衡和读写分离
-
巧用“核心数据像素”打造出彩的用户界面设计
-
Unity RUST 逆向安全开发