我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux下如何清除Cache和Buffer

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux下如何清除Cache和Buffer

这篇文章给大家分享的是有关Linux下如何清除Cache和Buffer的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

buffer和cache是两个在计算机技术中被用滥的名词,在Linux的内存管理中,这里的buffer指Linux内存的:Buffer cache。这里的cache指Linux内存中的:Page cache,翻译成中文可以叫做缓冲区缓存和页面缓存。

Linux下如何清除Cache和Buffer

如何在 Linux 中清除缓存(Cache)?

每个 Linux 系统有三种选项来清除缓存而不需要中断任何进程或服务。

(LCTT 译注:Cache,译作“缓存”,指 CPU 和内存之间高速缓存。Buffer,译作“缓冲区”,指在写入磁盘前的存储再内存中的内容。在本文中,Buffer 和 Cache 有时候会通指。)

  1. 仅清除页面缓存(PageCache)

     # sync; echo 1 > /proc/sys/vm/drop_caches
  2. 清除目录项和inode

     # sync; echo 2 > /proc/sys/vm/drop_caches
  3. 清除页面缓存,目录项和inode

     # sync; echo 3 > /proc/sys/vm/drop_caches

上述命令的说明:

sync 将刷新文件系统缓冲区(buffer),命令通过“;”分隔,顺序执行,shell在执行序列中的下一个命令之前会等待命令的终止。正如内核文档中提到的,写入到drop_cache将清空缓存而不会杀死任何应用程序/服务,echo命令做写入文件的工作。

如果你必须清除磁盘高速缓存,第一个命令在企业和生产环境中是最安全,"...echo 1> ..."只会清除页面缓存。 在生产环境中不建议使用上面的第三个选项"...echo 3 > ..." ,除非你明确自己在做什么,因为它会清除缓存页,目录项和inodes。

在Linux上释放也许被内核所使用的缓冲区(Buffer)和缓存(Cache)是否是个好主意?

当你设置许多设定想要检查效果时,如果它实际上是专门针对 I/O 范围的基准测试,那么你可能需要清除缓冲区和缓存。你可以如上所示删除缓存,无需重新启动系统(即无需停机)。

Linux被设计成它在寻找磁盘之前到磁盘缓存寻找的方式。如果它发现该资源在缓存中,则该请求不会发送到磁盘。如果我们清理缓存,磁盘缓存就起不到作用了,系统会到磁盘上寻找资源。

此外,当清除缓存后它也将减慢系统运行速度,系统会将每一个被请求的资源再次加载到磁盘缓存中。

现在,我们将创建一个 shell 脚本,通过一个 cron 调度任务在每天下午2点自动清除RAM缓存。如下创建一个 shell 脚本 clearcache.sh 并在其中添加以下行:

 #!/bin/bash# 注意,我们这里使用了 "echo 3",但是不推荐使用在产品环境中,应该使用 "echo 1"echo "echo 3 > /proc/sys/vm/drop_caches"

给clearcache.sh文件设置执行权限

 # chmod 755 clearcache.sh

现在,当你需要清除内存缓存时只需要调用脚本。

现在设置一个每天下午2点的定时任务来清除RAM缓存,打开crontab进行编辑。

 # crontab -e

添加以下行,保存并退出。

 0 3 * * * /path/to/clearcache.sh

有关如何创建一个定时任务,更多细节你可以查看我们的文章 11 个定时调度任务的例子。

在生产环境的服务器上自动清除RAM是否是一个好主意?

不!它不是。想想一个情况,当你已经预定脚本在每天下午2点来清除内存缓存。那么其时该脚本会执行并刷新你的内存缓存。在某一天由于某些原因,可能您的网站的在线用户会超过预期地从你的服务器请求资源。

而在这时,按计划调度的脚本运行了,并清除了缓存中的一切。当所有的用户都从磁盘读取数据时,这将导致服务器崩溃并损坏数据库。因此,清除缓存仅在必要时并且在你的预料之中,否则你就是个呆瓜系统管理员。

如何清除Linux的交换空间?

如果你想清除掉的空间,你可以运行下面的命令:

 # swapoff -a && swapon -a

此外,了解有关风险后,您可以将上面的命令添加到cron中。

现在,我们将上面两种命令结合成一个命令,写成正确的脚本来同时清除RAM缓存和交换空间。

 # echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'

 su -c 'echo 3 > /proc/sys/vm/drop_caches' && swapoff -a && swapon -a && printf '\n%s\n' 'Ram-cache and Swap Cleared'

在测试上面的命令之前,我们在执行脚本前后运行“free -m” 来检查缓存。

Linux下如何清除Cache和Buffer

Clear RAM Cache and Swap Space

感谢各位的阅读!关于“Linux下如何清除Cache和Buffer”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux下如何清除Cache和Buffer

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux下如何清除Cache和Buffer

这篇文章给大家分享的是有关Linux下如何清除Cache和Buffer的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。buffer和cache是两个在计算机技术中被用滥的名词,在Linux的内存管理中,这里的buf
2023-06-28

如何分析Linux内存、Swap、Cache和Buffer

今天给大家介绍一下如何分析Linux内存、Swap、Cache和Buffer。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。在Linux系统下,我们一般不需要去
2023-06-28

Linux下如何清除DNS缓存

这篇文章将为大家详细讲解有关Linux下如何清除DNS缓存,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。有时候电脑突然上不了网,或者存在某些网站打不开的情况,但别的网站又可以打开,解决办法需要清除DNS缓
2023-06-27

linux如何清除redis缓存

要清除Redis缓存,可以使用以下方法:1. 使用命令行工具连接到Redis服务器:`redis-cli`2. 清除所有缓存:`flushall`命令可以清除Redis中的所有缓存数据。输入命令后,确认操作即可清除所有缓存数据。3. 清除特
2023-08-30

如何在Linux/Unix/Mac下清除DNS查询缓存

如何在Linux/Unix/Mac下清除DNS查询缓存,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux系统中清空DNS查询缓存可以有两种方式实现。一种是用DNS缓存程序
2023-06-28

linux如何清理rpm缓存删除下载的包

本文详述了如何在Linux系统中清理RPM缓存和删除下载的软件包。使用命令行或图形界面工具清理缓存,并通过命令行或GUI删除下载的软件包。定期清理缓存和删除下载的包以释放磁盘空间和优化系统性能。
linux如何清理rpm缓存删除下载的包
2024-04-02

如何查找并清除Linux木马pscan2

这篇文章主要讲解了“如何查找并清除Linux木马pscan2”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何查找并清除Linux木马pscan2”吧!一、现象AH现场的程序是分布式部署,除
2023-06-13

linux如何清除屏幕上的乱码

这篇文章主要介绍了linux如何清除屏幕上的乱码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。清除屏幕上的乱码只要输入:reset什么是Linux系统Linux是一种免费使用
2023-06-27

Linux下如何快速清空文件

这篇文章给大家分享的是有关Linux下如何快速清空文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Linux 终端下处理文件时,有时我们想直接清空或删除文件的内容但又不想使用任何Linux命令行编辑器去打开
2023-06-27

Linux中tcpkill如何清除异常tcp连接

这篇文章主要为大家展示了“Linux中tcpkill如何清除异常tcp连接”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中tcpkill如何清除异常tcp连接”这篇文章吧。tcpkil
2023-06-27

编程热搜

目录