与其它操作系统一样,GNU/Linux 已经实现了内存的高效管理.但是如果有进程已经占用了内存并且你想清理它,Linux也提供了刷新或者清理缓存的方式。

如何清理Linux的缓存?

每个Linux系统都有三种方式去清理缓存并且在不中断任何程序或者服务的情况下.

清理页面缓存

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

清理 dentries 和 inodes.

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

清理 页面缓存, dentries 和 inodes.

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

以上命令参数的解释:

sync 将刷新这个文件系统缓存.“;”为命令分隔符,在终端的这些命令将依次执行.正如内核文档中提到的,使用 drop_cache 将仅在杀死任何 应用程序/服务 来清理缓存,echo 命令主要是做写入文件的工作.

如果你必须清除磁盘缓存,对于企业生产环境来讲,上面第一条命令的方式是最安全的 "...echo 1 > ..." 将只清理 Page Cache.上面的第三种方式("...echo 3 >")是不被推荐使用在生产环境的,除非你知道这条命令有什么作用,会影响到哪些,它将清理 PageCache,dentries 和 inodes.

通过 Linux内核 来释放缓冲区和缓存也许是一个好主意?

当你使用了各种设置并希望检查它是否确实是在I/O 扩展基准测试上实现的,那么您可以能需要清除缓冲区缓存.综上所述,您可以在不重启系统的情况下清空缓存.

Linux 的设计方式是查询磁盘之前先查看磁盘缓存.如果从缓存中找到了资源,然后这个请求就不会到达磁盘了.如果我们清除了缓存,那磁盘缓存被使用的次数就会减少,而操作系统将会直接从磁盘上寻找资源.

此外,它还会使用系统慢几秒钟,因为缓存被清理后,操作系统所需要的资源需再次被加载到磁盘缓存中.

现在我们将创建一个 shell 脚本去自动清理内存缓存在每天的凌晨2点钟经由cron调度任务.创建一个 cleancache.sh 脚本并添加如下命令行:

#!/bin/bash

# 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"

设置 cleancache.sh 文件的权限:

# chmod 755 clearcache.sh

现在你可以无论什么时候都可以来调用此脚本来清理缓存.

打开 crontab 编辑:

# crontab -e

追加在最后面

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

对生产环境的服务器也使用它自动清理 RAM 缓存也是好主意?

No,它不是.设想这样一种情况:您计划每天凌晨2点清除ram缓存。每天凌晨2点执行脚本,刷新 RAM缓存,不管出于什么原因,总有一天,你的网站上的用户可能超过您的预期,并从您的服务器上寻找资源。

同时脚本运行并清除缓存中的所有内容,现在所有的用户都从磁盘中获取数据,它将导致服务器崩溃并破坏数据库,因此,只有在需要时才清除 ram-cache,并且知道您的打算,否则你就是个疯狂的系统管理员。

怎么清除Linux的交换空间?

如果您想清除交换空间,您可以执行如下命令:

# swapoff -a && swapon -a

您也可以添加如上命令到 cron 脚本,然后理解相关的风险.

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

OR

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

测试完上面的命令后,我们将运行 free -h 命令来对比执行前后的结果:

linux内存和缓冲区,Linux上怎么清除缓存、缓冲区和交换区空间?相关推荐

  1. Linux内存监控日记,Linux 内存监控

    init进程是系统中的第一个进程,PID永远为1 查看系统在中静态进程的统计信息 命令: ps 格式: ps [可选项] ax: 显示所有的进程信息 -u: 使用以用户为主的格式输出进程信息 -e: ...

  2. Linux内存技术分析(上)

    Linux内存技术分析(上) 一.Linux存储器 限于存储介质的存取速率和成本,现代计算机的存储结构呈现为金字塔型.越往塔顶,存取效率越高.但成本也越高,所以容量也就越小.得益于程序访问的局部性原理 ...

  3. linux 内存各指标,Linux 内存性能指标

    内存基础概念 先执行一下 top 命令,看结果中关于内存的相关部分 # top 其中的 VIRT.RES.SWAP 都是什么呢? 分别是下面的3个概念 物理内存 Resident - RES 实际的内 ...

  4. linux内存寻址实例,Linux内存寻址

    我会尽力以最简洁清晰的思路来写这篇文章. 所谓内存寻址也就是从写在指令里的地址,转化为实际物理地址的过程.因为操作系统要兼顾许多东西,所以也就变得复杂. 逻辑地址 → 线性地址 → 物理地址 逻辑地址 ...

  5. linux内存使用统计,Linux 中free命令检查内存使用情况

    我们都知道, IT 基础设施方面的大多数服务器(包括世界顶级的超级计算机)都运行在 Linux 平台上,因为和其他操作系统相比, Linux 更加灵活.有的操作系统对于一些微乎其微的改动和补丁更新都需 ...

  6. linux内存映射原理,Linux内存管理实践-使用fault()实现内存映射

    内核态与用户态进行数据交互通常是这样一种模型:内核利用自身的特权通过特定的服务程序采集.接收和处理数据:接着,用户态程序和内核服务程序进行数据交互,或接收内核态的数据,或向内核态写入数据.通过传统的那 ...

  7. linux内存管理简介,Linux内存管理机制简介

    在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然.这是Linux内存管理的一个优秀特性,区别于 Windows的内存管理. 主要特点是,无论物理内存有 ...

  8. 查看linux内存存储空间不足,Linux 下判断Server 内存是否不足

    下面我来写一下在linux OS 下如何判断系统是否内存吃紧. 我从两个部分来查看如何检查. 第一部分:查看内存使用状况 Linux 下使用Top [root@itc-test9 ~]# top to ...

  9. linux 内存管理优化,Linux性能优化实战 内存篇 阅读笔记

    第十五讲 基础篇:Linux内存是怎么工作的(2020.6.8) 这一讲相关的内容正好之前看csapp的时候总结了一下,可以直接贴出来作为总结了. Linux的内存工作原理,这又是一个特别大的话题.一 ...

  10. linux内存段页,linux内存管理-段式和页式管理

    该博文参考国嵌视频和http://www.cnblogs.com/image-eye/archive/2011/07/13/2105765.html,在此感谢作者. 一.地址类型 物理地址:CPU通过 ...

最新文章

  1. shell脚本编写知识2
  2. spring 获取cookies_springMVC操作cookie和session
  3. 4_InfluxDB学习之InfluxDB的基本概念、InfluxDB中独有的概念(Point,series),InfluxDB学习之InfluxDB的基本操作,InfluxDB操作方式,crud
  4. HMM前向算法,维比特算法,后向算法,前向后向算法代码
  5. 为什么使用%lf读取double型的值,而用%f进行显示?
  6. Saltstack-7:返回
  7. java 多线程 int_java多线程问题
  8. linux内核溢出利用,Linux内核堆缓冲区溢出漏洞
  9. 斗鱼基于etcd和ZooKeeper的注册中心实践案例
  10. python爬取西刺网代理IP地址
  11. 小马激活报错:已停止工作
  12. STC单片机不同数据类型串口打印输出示例程序
  13. java集成微信支付
  14. Qt开源作品35-秘钥生成器
  15. 微信特殊字符包括颜文字、表情的后台存储及前端展示方法
  16. Android显示Gif图片
  17. MFC对数据库的操作---MYSQL
  18. 电脑上与android手机文件互传
  19. python下载夏目友人帳
  20. QDUOJ 点击此处签到(并查集)

热门文章

  1. mapper的更多细节,日志配置、核心文件的配置等
  2. css文本外观属性大全(内附实例与图解)
  3. vue读取本机的excel文件的两种方式
  4. ASP.NET MVC中Area的另一种用法
  5. elment-ui的table组件多行合并
  6. 百行征信出首招,发布授信 反欺诈 核验三款测试产品
  7. 杭电多校第一场补题-1002 Balanced Sequence
  8. 《maven实战》学习笔记2——maven安装(windows和eclipse插件)
  9. 深度解析服务器需要虚拟化的两大条件
  10. mysql的密码重置