一、在Linux中如何清除缓存?

每一个Linux系统有三个选项来清除缓存而不中断任何进程或服务。
1,仅清除缓存页

sync; echo 1 > /proc/sys/vm/drop_caches

2,清除目录项和inodes

sync; echo 2 > /proc/sys/vm/drop_caches

3,清除,缓存页,目录项和inodes

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

上述命令的说明:
①sync将刷新文件系统缓存,命令通过";"分隔,顺序执行,shell等待终止在序列中的每一个命令执行之前。正如内核文档中提到的,写到drop_cache将清空缓存而不杀死任何应用程序/服务,echo命令做写入文件的工作。
②如果你必须清除磁盘高速缓存,第一个命令在企业和生产环境中是最安全,"…echo 1> …"只会清除页缓存。
③不建议使用上面第三个选项在生产环境中"…echo 3 >",除非你明确自己在做什么,因为它会清除缓存页,目录项和inodes。

二、在Linux上释放Buffer和Cache要用到内核是否是个好主意?

当你请求许多设定想要检查时,如果它实际上是专门实施对 I/O 广泛的基准测试,那么你可能需要清除缓存。你可以如上所示删除缓存,无需重新启动系统即无需停机。
Linux被设计成它在寻找磁盘之前到磁盘缓存寻找的方式。如果它发现该资源在缓存中,则该请求不到达磁盘。如果我们清理缓存,磁盘缓存将没有用处,系统会到磁盘上寻找资源。
此外,当清除缓存后它也将减慢系统运行速度,系统会重新加载每一个被请求的资源再次到磁盘缓存中。
现在,我们将通过一个cron任务调度器创建一个shell脚本在每天下午2点自动清除RAM缓存。

1、创建一个shell脚本clearcache.sh并在其中添加以下行

#!/bin/bash
# scrtipt_name: clearcache.sh
# Note, we are using "echo 3", but it is not recommended in production instead use "echo 1"
echo "echo 3 > /proc/sys/vm/drop_caches"

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

# chmod 755 clearcache.sh

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

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

# crontab -e

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

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

2、在生产环境的服务器上自动清除RAM是否是一个好主意?
不!它不是。想想一个情况,当你已经预定脚本来清除RAM缓存每天在下午2点。每天下午2点该脚本会执行并刷新你的RAM缓存。在一天中的任何时候,您网站用户的在线量可能会超过预期的,并从你的服务器请求资源。同时调度器运行着脚本,并在高速缓存中清除一切。当所有的用户都从磁盘读取数据时,这将导致服务器崩溃并损坏数据库
因此,清除缓存仅在必要时并且在你的预料之中,否则你就是个Cargo Cult System Administrator

三、如何清除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'

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

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

Linux 上如何清除 RAM 内存高速缓存,缓存和交换空间相关推荐

  1. 理解JVM如何使用Windows和Linux上的本机内存

    转至:http://www.chineselinuxuniversity.net/articles/23291.shtml 摘要:Java™ 堆耗尽并不是造成 java.lang.OutOfMemor ...

  2. 理解 JVM 如何使用 Windows 和 Linux 上的本机内存

    http://www.ibm.com/developerworks/cn/java/j-nativememory-linux/ Java 堆(每个 Java 对象在其中分配)是您在编写 Java 应用 ...

  3. 内存详解-理解 JVM 如何使用 Windows 和 Linux 上的本机内存

    内存详解 理解 JVM 如何使用 Windows 和 Linux 上的本机内存 Java™ 堆耗尽并不是造成 java.lang.OutOfMemoryError 的惟一原因.如果本机内存 耗尽,则会 ...

  4. JAVA 内存详解 (理解 JVM 如何使用 Windows 和 Linux 上的本机内存)

    级别: 中级 Andrew Hall , 软件工程师, IBM 2009 年 5 月 11 日 Java™ 堆耗尽并不是造成 java.lang.OutOfMemoryError 的惟一原因.如果本机 ...

  5. 如何在Windows 10上手动清除或禁用Chrome缓存

    通常,Chrome浏览器会将您浏览过的网页存储到计算机中.这样的文件,我们称为缓存.当您再次访问某个网站两次时,Google Chrome浏览器总是从缓存中提取原始内容,而不是从Internet下载. ...

  6. composer安装fxp插件时候提示内存不足且没有交换空间的解决办法

    出现的错误如下所示: The following exception is caused by a lack of memory or swap, or not having swap configu ...

  7. jvm在windows和linux,理解JVM如何使用Windows和Linux上的本机内存

    欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入 Java 运行时如何使用本机内存 Java 运行时是一个操作系统进程,它会受到我在上一节中列出的硬件和操作系统局限性的限制. ...

  8. linux关闭磁盘缓存,在linux上禁用apache2的所有磁盘缓存

    出于基准测试目的,我想强制Apache 2从磁盘加载每个请求的文件,而不是从内存中的缓存加载它.从我所读到的做同步后跟 echo 3 > /proc/sys/vm/drop_caches 让我放 ...

  9. Linux上跑程序加大内存

    一个shell 命令 加内存方法 Java  -Xms768m -Xmx768m -XX:PermSize=128m -classpath .:$lib........................ ...

  10. linux删除某个用户的共享内存,删除Linux上的所有共享内存和信号量

    除了bvamos的回答,根据该文档中使用的sem被弃用: NAME再用ipcrm - 删除一个消息队列,信号量设定或共享存储器ID 概要再用ipcrm [-M键| -m id | -Q键| -q id ...

最新文章

  1. 关于jsb中js与c++的相互调用
  2. mysql扩展中如何处理结果集_我们如何处理MySQL存储过程中的结果集?
  3. 结构型模式---适配器模式
  4. ES更新嵌套数组(使用Java API)
  5. c语言程序输入n个数字排序,输入n个数字然后进行排序,用C语言编写。注意是n个数啊,不是确定的个数。...
  6. PuppeteerSharp: 更友好的 Headless Chrome C# API
  7. 震惊!程序员要放弃 Python 了!?发生了啥?
  8. Android Handler的内存泄露场景分析
  9. 电子工程 计算机科学,计算机科学、计算机工程和电子工程有啥区别
  10. mysql limit锁_mysql中limit的用法
  11. js获取日期选择器值html,利用Query+bootstrap和js两种方式实现日期选择器
  12. Axure9(基础二)
  13. 常用颜色名称与RGB数值对照表
  14. C程序~一元二次方程求解
  15. IP地址和服务器之间的联系,都了解吗?
  16. 安装Redis使用make命令出现make /bin/sh: cc: 未找到命令 make[1]: 离开目录“/usr/local/mytools/redis-5.0.0/src“
  17. android studio 导出 aar,Android Studio 导出 .aar包的操作流程
  18. 70个经典的 Shell 脚本
  19. element ui table实现考勤排班表
  20. php中简单模糊查询的sql语句

热门文章

  1. ONOS 南向抽象层分析
  2. 网络小说海外“走红”的启示
  3. 2019年北航、南大、东南、上科大及本校计算机系保研
  4. 金融货币学笔记(米什金)第三章 什么是货币 带原书总结
  5. Java程序员进阶书籍 ,看这11本书就够了
  6. java该选择哪个城市_逃离北上广,java程序员又能选择哪些城市呢?
  7. 深度Deepin操作系统安装Docker
  8. Excel怎么转换成PDF?这两招轻松解决
  9. cyj等于什么英语单词_英语解题方法指导及例题分析
  10. CE+OD外挂制作实战 [提高篇]