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的作用基本无法发挥。需要根据机器的状况进行适当的调节寻找最佳的折衷。
相关推荐
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接口,允许用户手动干预内核的内存管理行为。 具体来说,/proc是一个虚拟文件系统,通过它可以和内核实体进行通信。在这个目录下的sys/vm/drop_caches文件,就是...
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_...
我们可以通过操作 /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@...
3. 手动清理:如描述中提到,可以通过执行 `sync && echo 3 > /proc/sys/vm/drop_caches` 来强制释放缓存。但请注意,这可能会暂时影响系统性能,因为缓存的存在就是为了加速访问,直接清空可能导致后续的I/O操作变...
### Linux下手动释放内存 在Linux系统中,内存管理是一个重要的方面,特别是在服务器环境中,合理的内存管理能够提高系统的性能和稳定性。本文将详细介绍如何通过命令手动释放Linux系统的内存,并解释这些命令背后...
4. 释放 pagecache、dentries 和 inodes:使用 echo 3 > /proc/sys/vm/drop_caches 命令释放 pagecache、dentries 和 inodes。 5. 确保文件系统的完整性:使用 sync 命令确保文件系统的完整性。 Linux 系统中的内存...
- `echo 3 > /proc/sys/vm/drop_caches` 清理页缓存、dentry和inode缓存 注意,这样做是安全的,因为只会清理干净的缓存,不会影响到正在使用的数据。但在执行此操作前,建议先运行`sync`以保存任何未写入磁盘的...
在CentOS7系统中,yum缓存可能会占用大量内存和磁盘空间,本文将介绍如何清理yum缓存和释放内存的方法。 一、清理yum缓存 yum缓存是指yum在安装、卸载、升级和查询包信息时,缓存的一些包信息和元数据。这些缓存...
这几天发现CentOS系统内存一直涨,即使把apache和mysql关闭了,内存也不释放,可以... #echo 1 > /proc/sys/vm/drop_caches # To free dentries and inodes: #echo 2 > /proc/sys/vm/drop_caches # To fre
- **默认值**:`/proc/sys/vm/drop_caches` 的默认值为 `0`,表示不执行任何缓存清理操作。 - **可设置值**: - `1` 清除 pagecache; - `2` 清除 dentries 和 inodes; - `3` 同时清除 pagecache、dentries 和 ...
通过理解`/proc/sys/vm/drop_caches`参数并适时执行释放缓存的命令,我们可以有效地管理和优化系统的运行速度,确保系统的稳定性和响应速度。然而,这种操作需要根据实际的系统状况和应用需求来执行,以免对正在运行...
清理Ubuntu的页面缓存, drop vm cache。一般大家在做大型工程的编译时,比如linux kernel,Android等总会遇到内存爆满,系统一旦开始刷新...一定要用root用户使用哦,要不然echo 1 > /proc/sys/vm/drop_caches会失败。
### Linux下释放Cache内存 #### 一、理解Linux内存管理机制 在Linux系统中,内存管理机制非常高效且复杂。为了提升文件系统访问速度,Linux内核会利用空闲内存来缓存文件数据(称为Page Cache)和其他类型的缓存...
- 使用`/proc/sys/vm/drop_caches`文件可以手动清理缓存。 2. **`free`命令详解**: - `free -m`显示内存使用情况,其中 `-m` 表示以MB为单位显示。 - 输出结果包括总内存、已用内存、空闲内存等。 3. **`awk`...
Linux 内核系统文件详解 Linux 内核系统文件是 Linux 操作系统的核心组件之一,负责管理系统的硬件.../proc/sys/vm/drop_caches 文件提供了系统的缓存清除机制,允许管理员清除系统的缓存,从而释放系统的内存资源。
- `echo 3 > /proc/sys/vm/drop_caches`: 清除所有缓存(包括buffers缓存、page cache和dentries缓存)。 #### 三、缓存清理脚本设计思路 根据题目提供的部分内容:“002***rootbash/home/iflytek/restart.sh”,...
描述中提到“在Linux下清空缓存,很好用,成功过的”,这表明该程序或脚本在执行后能够有效地清理Linux系统的内存缓存,以释放内存资源。 在Linux系统中,内存缓存包含文件系统缓存、交换空间以及内核缓冲区等,...