http://hi.baidu.com/icej/blog/item/c362c33f88093bc57c1e71ea.html
/proc是一个虚拟文件系统,我们可以通过对它的读写操作做为与kernel实体间进行通信的一种手段.也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整.那么我们可以通过调整/proc/sys/vm /drop_caches来释放内存.操作如下:
[root@server test]# cat /proc/sys/vm/drop_caches
0
首先,/proc/sys/vm/drop_caches的值,默认为0
[root@server test]# sync
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
[root@server test]# echo 3 > /proc/sys/vm/drop_caches
[root@server test]# cat /proc/sys/vm/drop_caches
3
将/proc/sys/vm/drop_caches值设为3
[root@server test]# free -m
total used free shared buffers cached
Mem: 249 66 182 0 0 11
-/+ buffers/cache: 55 194
Swap: 511 0 511
再来运行free命令,发现现在的used为66MB,free为182MB,buffers为0MB,cached为11MB.那么有效的释放了buffer和cache.
有关/proc/sys/vm/drop_caches的用法在下面进行了说明
/proc/sys/vm/drop_caches (since Linux 2.6.16)
Writing to this file causes the kernel to drop clean caches,
dentries and inodes from memory, causing that memory to become
free.
To free pagecache, use echo 1 > /proc/sys/vm/drop_caches; to
free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 >
/proc/sys/vm/drop_caches.
Because this is a non-destructive operation and dirty objects
are not freeable, the user should run sync(8) first.
分享到:
相关推荐
标题提到的"linux 查看 cache 中文件",指的是在Linux环境下查看内存中的缓存文件。这个功能可以通过特定的工具实现,描述中提及的“安装此工具后,可以查看系统内存中cache包含的文件”,很可能是指一个名为`ftools...
在Cache工作原理、CPU流水线特性、Linux内存管理以及内核中DMA接口函数的知识点上,开发者需要有足够的理解才能正确处理DMA与Cache之间的一致性问题。 DMA所使用的地址问题,涉及到了处理器的MMU(内存管理单元)和...
Linux内存管理机制的一个显著特点是充分利用空闲内存作为缓存(包括Buffer Cache和Page Cache)。这样做能够极大地提高磁盘I/O效率,从而提升应用程序的整体性能。但是,这种设计也可能会让初学者感到困惑,尤其是在...
页面是Linux内存管理的基本单位,包含了关于页的元信息,如其状态、物理地址等。 - `struct kmem_cache_node`: 这个结构体与`struct kmem_cache`相关,用于跨CPU节点的缓存管理,特别是在NUMA(非统一内存访问)系统...
1. **理解Linux内存管理**:Linux采用的是虚拟内存管理系统,其中buff/cache部分实际上是作为RAM的一部分,用于加速文件读写和I/O操作。正常情况下,较高的buff/cache值并不一定是问题,因为这些内存可以迅速释放供...
### Linux内存清理与释放命令详解 #### 概述 Linux作为一种高效的服务器操作系统,在资源管理上有着卓越的表现。尤其是在内存管理方面,Linux系统倾向于利用空闲内存作为缓存,以提高文件系统的读写性能。然而,在...
### Linux-定期清内存...通过以上分析,我们可以了解到如何编写和执行一个简单的shell脚本来定期清理Linux系统的内存缓存,以及如何使用crontab来自动化这一过程。这有助于优化系统的内存使用,确保其高效稳定地运行。
同时,cachefiles还需要与其他缓存机制(如page cache)协同工作,以充分利用内存资源。 **5. 性能优化** cachefiles的设计考虑了性能优化,例如采用LRU(Least Recently Used)算法来决定何时替换缓存中的文件,...
缓存初始化也是缓存设计中的一个关键部分,在MIPS架构中,使用Yamon这类启动代码来初始化I-Cache和D-Cache,确保在系统启动时缓存能够正常工作。而写缓冲(Write Buffer)是缓存设计中用于提升写操作性能的一种机制,...
在Linux环境下,良好的内存管理对于保持系统的稳定性和性能至关重要。本文将详细介绍如何通过特定命令来清理Linux系统的内存,并解释相关命令的作用机理及其应用场景。 #### 二、清理内存的必要性 在Linux系统中,...
缓存管理(Cache Manage)处理CPU缓存的管理,包括数据缓存和指令缓存的使用策略,以及缓存一致性问题。任务管理(Task Manage)主要负责进程的创建、调度和同步,涉及进程描述符、进程状态和进程调度器等概念。...
fincore允许用户查看特定文件或目录是否被加载到内存的page cache中,这对于优化系统性能和监控内存使用情况非常有帮助。 使用fincore时,你需要指定要检查的文件或目录路径。它会返回一个位图,其中每一位对应于...
Linux 内核系统文件详解 Linux 内核系统文件是 Linux 操作系统的核心组件之一,负责管理系统的硬件.../proc/sys/vm/drop_caches 文件提供了系统的缓存清除机制,允许管理员清除系统的缓存,从而释放系统的内存资源。
Linux内存管理是操作系统核心的重要组成部分,它负责有效地分配、使用和回收系统内存,以确保系统的稳定性和性能。在Linux中,内存管理涉及到多个层次和策略,包括页面回收、内存分配器、CMA(Contiguous Memory ...
在Linux系统中,我们可以通过`/proc/meminfo`文件来查看Buffer和Cache的详细信息。`Buffers`表示内核缓冲区占用的内存,而`Cached`则表示页缓存和Slab缓存占用的内存。Slab是一种内存分配机制,用于高效地管理内核...
在Linux系统中,`free`命令是一个非常实用的工具,用于查看系统内存的状态,包括物理内存(RAM)和交换空间(Swap)。通过分析`free`命令的输出,我们可以获取到系统内存使用的详细信息,这对于系统管理员监控和优化...
`kmem_cache_create`, `kmem_cache_shrink`, `kmem_cache_destroy` 等函数用于创建、调整和销毁 Slab 缓存。 以上总结了《Linux Kernel 2.4-7 内核函数手册》中的一些关键知识点,涉及驱动基础、数据类型、基本 C ...
- `echo 3 > /proc/sys/vm/drop_caches`: 清除所有缓存(包括buffers缓存、page cache和dentries缓存)。 #### 三、缓存清理脚本设计思路 根据题目提供的部分内容:“002***rootbash/home/iflytek/restart.sh”,...
当系统内存资源紧张时,内核会采取一系列措施来释放内存,例如,回收未使用的slab对象,清除Page Cache,甚至杀掉后台进程。低内存killer是这个过程的一部分,它根据进程的优先级和内存占用情况选择性地结束进程,以...
这种方法消除了直接映射中的冲突问题,但随着缓存大小的增加,搜索过程变得复杂和缓慢,因为需要对所有的缓存行进行标记比较,以确定数据是否存在。 综上所述,不同类型的CPU缓存关联度各有优缺点。在设计CPU缓存时...