`

Linux下手动清理内存和Cache方法 /proc/sys/vm/drop_caches

 
阅读更多

Linux下手动清理内存和Cache方法 /proc/sys/vm/drop_caches

使用原理

在linux系统中,为了加快数据的读取速度,默认情况下,某些数据将不会直接写入硬盘,而是先暂存内存中,如果一个数据被重复写,这样速度一定快,但存在一个问题,万一重新启动,或者是关机,或者是不正常断电的情况下,由于数据还没来得及存入硬盘,会造成数据更新不正常,这时需要命令sync进行数据的写入,即#sync,在内存中尚未更新的的数据会写入硬盘中。当然正常情况下,关闭系统时会自动进行内存数据于硬盘数据的同步检测,保证硬盘数据在关闭系统时是最新的。

使用方法:

频繁的文件访问会导致系统的Cache使用量大增

$ free -g

运行sync将dirty的内容写回硬盘
$sync

通过修改proc系统的drop_caches清理free的cache
$echo 3 > /proc/sys/vm/drop_caches

drop_caches的详细文档如下:
Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
To free pagecache:
* echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
* echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
* echo 3 > /proc/sys/vm/drop_caches
As this is a non-destructive operation, and dirty objects are notfreeable, the user should run "sync" first in order to make sure allcached objects are freed.
This tunable was added in 2.6.16.

修改/etc/sysctl.conf 添加如下选项后就不会内存持续增加
vm.dirty_ratio = 1
vm.dirty_background_ratio=1
vm.dirty_writeback_centisecs=2
vm.dirty_expire_centisecs=3
vm.drop_caches=3
vm.swappiness =100
vm.vfs_cache_pressure=163
vm.overcommit_memory=2
vm.lowmem_reserve_ratio=32 32 8
kern.maxvnodes=3

上面的设置比较粗暴,使cache的作用基本无法发挥。需要根据机器的状况进行适当的调节寻找最佳的折衷。

分享到:
评论

相关推荐

    linux 内存清理/释放命令总结

    echo 1 > /proc/sys/vm/drop_caches 3.清理后内存使用情况 free -m 4.完成! 查看内存条数命令: dmidecode | grep -A16 Memory Device$ # sync # echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/...

    手工释放linux内存_proc sys vm drop_caches

    在这种情况下,Linux提供了/proc/sys/vm/drop_caches接口,允许用户手动干预内核的内存管理行为。 具体来说,/proc是一个虚拟文件系统,通过它可以和内核实体进行通信。在这个目录下的sys/vm/drop_caches文件,就是...

    linux 清理内存命令详细介绍

    echo 1 > /proc/sys/vm/drop_caches 3.清理后内存使用情况 free -m 4.完成! 查看内存条数命令: # sync # echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sys/vm/drop_...

    手工释放linux内存_procsysvmdrop_caches.pdf

    我们可以通过操作 /proc/sys/vm/drop_caches 文件来释放内存。 ``` [root@server test]# cat /proc/sys/vm/drop_caches 0 [root@server test]# sync [root@server test]# echo 3 > /proc/sys/vm/drop_caches [root@...

    解决 linux 下 buffcache 占用过高的问题.docx

    3. 手动清理:如描述中提到,可以通过执行 `sync && echo 3 > /proc/sys/vm/drop_caches` 来强制释放缓存。但请注意,这可能会暂时影响系统性能,因为缓存的存在就是为了加速访问,直接清空可能导致后续的I/O操作变...

    Linux下手动释放内存

    ### Linux下手动释放内存 在Linux系统中,内存管理是一个重要的方面,特别是在服务器环境中,合理的内存管理能够提高系统的性能和稳定性。本文将详细介绍如何通过命令手动释放Linux系统的内存,并解释这些命令背后...

    Linux系统中的内存清理和释放命令归纳.docx

    4. 释放 pagecache、dentries 和 inodes:使用 echo 3 > /proc/sys/vm/drop_caches 命令释放 pagecache、dentries 和 inodes。 5. 确保文件系统的完整性:使用 sync 命令确保文件系统的完整性。 Linux 系统中的内存...

    手动释放Linux服务器内存(具体操作步骤)

    - `echo 3 > /proc/sys/vm/drop_caches` 清理页缓存、dentry和inode缓存 注意,这样做是安全的,因为只会清理干净的缓存,不会影响到正在使用的数据。但在执行此操作前,建议先运行`sync`以保存任何未写入磁盘的...

    CentOS7清理yum缓存和释放内存方法.pdf

    在CentOS7系统中,yum缓存可能会占用大量内存和磁盘空间,本文将介绍如何清理yum缓存和释放内存的方法。 一、清理yum缓存 yum缓存是指yum在安装、卸载、升级和查询包信息时,缓存的一些包信息和元数据。这些缓存...

    实现释放CentOS系统内存的Shell脚本分享

    这几天发现CentOS系统内存一直涨,即使把apache和mysql关闭了,内存也不释放,可以... #echo 1 > /proc/sys/vm/drop_caches   # To free dentries and inodes:   #echo 2 > /proc/sys/vm/drop_caches   # To fre

    手工释放linux内存.pdf

    - **默认值**:`/proc/sys/vm/drop_caches` 的默认值为 `0`,表示不执行任何缓存清理操作。 - **可设置值**: - `1` 清除 pagecache; - `2` 清除 dentries 和 inodes; - `3` 同时清除 pagecache、dentries 和 ...

    Linux使用指令释放缓存提升系统运行速度的方法.docx

    通过理解`/proc/sys/vm/drop_caches`参数并适时执行释放缓存的命令,我们可以有效地管理和优化系统的运行速度,确保系统的稳定性和响应速度。然而,这种操作需要根据实际的系统状况和应用需求来执行,以免对正在运行...

    清理Ubuntu等页面缓存,清空物理内存

    清理Ubuntu的页面缓存, drop vm cache。一般大家在做大型工程的编译时,比如linux kernel,Android等总会遇到内存爆满,系统一旦开始刷新...一定要用root用户使用哦,要不然echo 1 > /proc/sys/vm/drop_caches会失败。

    linux下释放cache内存

    ### Linux下释放Cache内存 #### 一、理解Linux内存管理机制 在Linux系统中,内存管理机制非常高效且复杂。为了提升文件系统访问速度,Linux内核会利用空闲内存来缓存文件数据(称为Page Cache)和其他类型的缓存...

    Linux-定期清内存缓存-shell脚本

    - 使用`/proc/sys/vm/drop_caches`文件可以手动清理缓存。 2. **`free`命令详解**: - `free -m`显示内存使用情况,其中 `-m` 表示以MB为单位显示。 - 输出结果包括总内存、已用内存、空闲内存等。 3. **`awk`...

    linux内核系统文件详解

    Linux 内核系统文件详解 Linux 内核系统文件是 Linux 操作系统的核心组件之一,负责管理系统的硬件.../proc/sys/vm/drop_caches 文件提供了系统的缓存清除机制,允许管理员清除系统的缓存,从而释放系统的内存资源。

    Linux系统缓存清理脚本

    - `echo 3 > /proc/sys/vm/drop_caches`: 清除所有缓存(包括buffers缓存、page cache和dentries缓存)。 #### 三、缓存清理脚本设计思路 根据题目提供的部分内容:“002***rootbash/home/iflytek/restart.sh”,...

    linux_empty.rar_empty

    描述中提到“在Linux下清空缓存,很好用,成功过的”,这表明该程序或脚本在执行后能够有效地清理Linux系统的内存缓存,以释放内存资源。 在Linux系统中,内存缓存包含文件系统缓存、交换空间以及内核缓冲区等,...

Global site tag (gtag.js) - Google Analytics