与其他任何操作系统一样,GNU / Linux实现的内存管理不仅有效,而且更好. 但是,如果有任何进程吞噬了您的内存,而您想清除它,Linux提供了一种刷新或清除RAM缓存的方法.
如何在Linux中清除缓存(Cache)?
每个Linux系统都有三个选项来清除缓存,而不会中断任何进程或服务.
(LCTT注释: 缓存,翻译为“缓存”,是指CPU和内存之间的高速缓存. 缓冲区,翻译为“缓冲区”,是指写入磁盘之前存储和内存的内容. 文章,有时将“缓冲区和缓存”一起提到. )
仅清除页面缓存(PageCache)
# sync; echo 1 > /proc/sys/vm/drop_caches
清除目录条目和索引节点
# sync; echo 2 > /proc/sys/vm/drop_caches
清除页面缓存,目录条目和索引节点
# sync; echo 3 > /proc/sys/vm/drop_caches
上述命令的说明:
sync将刷新文件系统缓冲区. 命令之间用“;”分隔并按顺序执行. Shell将等待命令终止,然后再执行序列中的下一个命令. 如内核文档中所述,写入drop_cache将清除缓存,而不会终止任何应用程序/服务. echo命令完成写入文件的工作.
如果必须清除磁盘缓存,则第一个命令在企业和生产环境中是最安全的,“ ... echo 1> ...”将仅清除页面缓存. 除非您知道自己在做什么,否则不建议在生产环境中使用上面的第三个选项“ ... echo 3> ...”,因为它会清除缓存页面,目录条目和索引节点.
释放Linux内核可能使用的缓冲区和缓存是个好主意吗?
当您设置许多设置并要检查效果时,如果它实际上是专门针对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”以检查缓存.
就是这样,如果您喜欢这篇文章,别忘了向我们提供您的宝贵意见,让我们知道,您认为清除企业和生产环境中的内存缓存和缓冲区是个好主意吗?
通过:
作者: Avishek Kumar译者: 挣扎的青少年校对: wxy
本文最初由LCTT翻译,Linux China很荣幸推出
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-297497-1.html