Linux 释放缓存区内存的方法

释放缓存区内存的方法

buffer : 从内存中准备要写入磁盘的数据
cache: 从磁盘中写入内存的数据,并被相应的服务快速的读取。

1)清理pagecache(页面缓存)
echo 1 > /proc/sys/vm/drop_caches
或者
sysctl -w vm.drop_caches=1

2)清理dentries(目录缓存)和inodes
echo 2 > /proc/sys/vm/drop_caches
或者
sysctl -w vm.drop_caches=2

3)清理pagecache、dentries和inodes
echo 3 > /proc/sys/vm/drop_caches
或者
sysctl -w vm.drop_caches=3



在清理缓存前,最好执行sync 命令,保持数据一致性,防止数据丢失。

下面两行命令等同于第三行命令

sync; echo 3 > /proc/sys/vm/drop_caches
sync; echo 1 > /proc/sys/vm/drop_caches
或者
sync && echo 3 >/proc/sys/vm/drop_caches && sleep 2 && echo 1 >/proc/sys/vm/drop_caches

原文地址:http://blog.51cto.com/snowlai/2135438

时间: 2024-10-11 00:31:40

Linux 释放缓存区内存的方法的相关文章

ubuntu 手动释放缓存 (清理内存cache)

sync echo 3 > /proc/sys/vm/drop_caches ok完成cache内存清理 原文地址:https://blog.51cto.com/13120271/2399074

linux系统缓存机制

1.缓存机制 为了提高文件系统性能,内核利用一部分物理内存分配出缓冲区,用于缓存系统操作和数据文件,当内核收到读写的请求时,内核先去缓存区找是否有请求的数据,有就直接返回,如果没有则通过驱动程序直接操作磁盘. 缓存机制优点:减少系统调用次数,降低CPU上下文切换和磁盘访问频率. CPU上下文切换:CPU给每个进程一定的服务时间,当时间片用完后,内核从正在运行的进程中收回处理器,同时把进程当前运行状态保存下来,然后加载下一个任务,这个过程叫做上下文切换.实质上就是被终止运行进程与待运行进程的进程切

linux中手动释放缓存的方法

linux中手动释放缓存的方法  Linux释放内存的相关知识介绍: 在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好.但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空 间影响性能,例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.,此时就需 要执行释放内存(清理缓存)的操作了. Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的

Linux手动释放缓存的方法

Linux释放内存的命令: syncecho 1 > /proc/sys/vm/drop_caches drop_caches的值可以是0-3之间的数字,代表不同的含义:0:不释放(系统默认值)1:释放页缓存2:释放dentries和inodes3:释放所有缓存 释放完内存后改回去让系统重新自动分配内存.echo 0 >/proc/sys/vm/drop_caches free -m #看内存是否已经释放掉了. 如果我们需要释放所有缓存,就输入下面的命令:echo 3 > /proc/s

Linux内存机制以及手动释放swap和内存

哇,感觉好久没更新了,今天我们来谈谈Linux的内存机制. 首先我们理一下概念 一.什么是linux的内存机制? 我们知道,直接从物理内存读写数据要比从硬盘读写数据要快的多,因此,我们希望所有数据的读取和写入都在内存完成,而内存是有限的,这样就引出了物理内存与虚拟内存的概念. 物理内存就是系统硬件提供的内存大小,是真正的内存,相对于物理内存,在linux下还有一个虚拟内存的概念,虚拟内存就是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换

刷新缓存区方式和刷新内存到磁盘方式总结。

首先聊这个话题,我们先了解两个函数: 1.printf函数 2.write函数 一.首先了解缓冲区的概念,Linux下的缓冲区分为以下三种: 1.全缓冲,顾名思义,除非你主动刷新缓冲区,不然只能等到缓冲区满,才能刷新缓冲区.比如写入磁盘. 2.行缓冲,当遇到'\n'时,刷新缓冲区,比如 C库函数. 3.无缓冲,接受多少给多少,比如stderr. 今天主要讲述的是行缓冲,如果想在不使用'\n'的情况下刷新缓存区,有下列手段-- 1.fflush()函数. 函数原型:int fflush(FILE

Linux的缓存内存 Cache Memory详解

http://www.ha97.com/4337.html PS:前天有童鞋问我,为啥我的Linux系统没运行多少程序,显示的可用内存这么少?其实Linux与Win的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory. 有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文件,会发现有一项 Cached Memory: 输入cat /proc/meminfo查看:MemTotal: 16

关于Linux的缓存内存 Cache Memory详解

PS:前天有童鞋问我,为啥我的Linux系统没运行多少程序,显示的可用内存这么少?其实Linux与Win的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory. 有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文件,会发现有一项 Cached Memory: 输入cat /proc/meminfo查看: MemTotal: 16425996 kB MemFree: 5698808 kB

linux释放内存

首先我们可能会用free 去查看内存的使用率,它应该是这样的 [[email protected] ~]# free -m             total       used       free     shared    buffers     cached Mem:         32040      31707        332          0        498      27649 -/+ buffers/cache:       3559      28480