如何清除linux的内存缓存,缓冲和交换空间

说明

和其他操作系统一样,linux已经实现了很有效的内存管理机制,但是任何一个进程损坏了系统的内存,那么你就必须清理它,linux提供了一个比较好的方式刷新\清除RAM缓存。

注意:并不是什么时候都需要清除RAM缓存的,大家都知道,linux查找数据都是优先从RAM缓存中查找的,一旦清空缓存,所有的数据都需要从磁盘读取,所以只在需要的时候清空缓存,才是正确的选择。

如何清除linux缓存?

1.只清除PageCache:

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

2.清除dentries and inodes

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

3.同时清除PageCache和dentries and inodes

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

对上面的命令的解释:    

    sync将会刷新系统的buffer   

根据官方内核文档描述,对drop_caches写入值将会在不杀死任何应用服务的情况下清空缓存。

在生产环境中建议使用echo 1,因为它会优先清空磁盘缓存。

效果展示:

使用shell脚本自动在晚上2点清除RAM缓存

vim  clearcache.sh 
#!/bin/bash
echo "echo 1 > /proc/sys/vm/drop_caches"
# chmod 755 clearcache.sh
# crontab -e
    0  3  *  *  *  /path/to/clearcache.sh

如何清除交换空间?

简单的清除可以使用如下的命令

# swapoff -a && swapon -a

结合上面的脚本

vim  clearcache.sh 
#!/bin/bash
echo "echo 1 > /proc/sys/vm/drop_caches" && swapoff -a && swapon -a && 
printf ‘\n%s\n‘ ‘Ram-cache and Swap Cleared‘
时间: 2024-10-13 01:42:39

如何清除linux的内存缓存,缓冲和交换空间的相关文章

Linux清空内存缓存

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

浅谈Linux的内存管理机制

转至:http://ixdba.blog.51cto.com/2895551/541355 一 物理内存和虚拟内存          我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念.物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的

转:浅谈Linux的内存管理机制

一 物理内存和虚拟内存          我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(Swap Space).          作为物理内存的扩展,l

Android Glide数据更新及内存缓存、硬盘缓存清理

[转] 原文                                         Android Glide数据更新及内存缓存.硬盘缓存清理 Android的Glide在加载图片时候内部默认使用了缓存机制,Glide的缓存机制分为两级,第一级是内存缓存,然后第二级是硬盘缓存.缓存的过程首先是在内存中缓存,然后将加载的图片资源缓存到硬盘,这样就可以在随后的再次加载中使用缓存了,Glide使用缓存时候首先要检查内存这一层级是否缓存了相应的缓存,如果有,则直接使用,如果没有,则深入到硬盘缓

linux交换空间

交换空间 操作系统可在需要时暂时换出部分内存数据至磁盘的交换空间以腾出更多内存空间,或从交换空间将数据换入内存. Linux 支持两种形式的交换空间 1.交换分区 2.交换空间 Linux 系统最多可以有32 个交换空间,386 兼容平台上每个交换空间最大不能超过2GB. 分配交换空间的建议:以4MB 或8MB 为单位,一般为物理内存1 - 2 倍 交换分区的创建 (1)准备:创建分区/dev/sdb1 并设置其类型为82(Linux swap) (2)格式化交换分区 mkswap /dev/s

关于Linux系统的swap交换空间

用Ubuntu已经将近1年了,最近重装了16.04之后,每天到下午5点左右,都会发现Swap交换空间有几百兆的写入,系统内存8G,硬盘是SSD,i5处理器,配置中档,也没有启动什么大型软件,就是用IDEA做开发,虽然没有影响,但本着一颗求知的心,google一下,第一篇是<All about Linux swap space>,口气很大,直接翻译了. Linux将随机存储RAM称为内存页.交换技术就是将一页内存复制到预先设定的硬盘上的交换空间,来释放该页占用内存.物理内存和交换空间的和就是可提

Linux 快速释放端口与释放内存缓存

在Linux系统中做系统测试有时会遇到端口占用过多来不及释放,导致应用错误的情况,使用如下的命令即能让端口被快速回收.但需要注意的是,打开tcp_tw_reccycle,kernel会检查对端机器的包的时间戳,所以生产上是否打开tcp_tw_reccycle,还需根据应用而看. sysctl -w net.ipv4.tcp_tw_recycle=1 在测试块设备性能时,有些数据会被缓存至内存中,导致测试结果虚大,使用如下命令可以清空内存缓存 sysctl -w vm.drop_caches=3

Linux内核——内存管理

内存管理 页 内核把物理页作为内存管理的基本单位:内存管理单元(MMU,管理内存并把虚拟地址转换为物理地址)通常以页为单位进行处理.MMU以页大小为单位来管理系统中的页表.从虚拟内存的角度看,页就是最小单位. 32位系统:页大小4KB 64位系统:页大小8KB 在支持4KB页大小并有1GB物理内存的机器上,物理内存会被划分为262144个页.内核用 struct page 结构表示系统中的每个物理页. struct page { page_flags_t flags;   /* 表示页的状态,每

Linux查看内存占用命令解析

$cat /proc/meminfoMemTotal:        2052440 kB //总内存MemFree:           50004 kB //空闲内存Buffers:           19976 kB //给文件的缓冲大小Cached:           436412 kB //高速缓冲存储器(http://baike.baidu.com/view/496990.htm)使用的大小SwapCached:        19864 kB //被高速缓冲存储用的交换空间大小