CentOS系统下的cache Memoryry

分类:CentOS教程 阅读:43737 次

关于linux系统下的cache Memory什么是Cache Memory?当你读写文件的时候,Linux内核为了提高读写性能与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存会很少。

其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放,所以你不必担心没有内存可用。如果你希望手动去释放Cache Memory也是有办法的。

通过命令可以查看内存状态:

方法一:

[root@sky9896 /]# more /proc/meminfo

MemTotal: 1921696 kB #总物理内存

MemFree:106016 kB #空闲内存

Buffers: 176380 kB #缓存,主要用于目录

Cached: 696016 kB #缓存,用于已打开的文件

SwapCached:33176 kB #交换缓存

......

方法二:

[root@sky9896 /]# free -m

total used freeshared buffers cached

Mem:1876 1723 152 0 173 618

-/+ buffers/cache: 931 944

Swap: 2023 138 1885

注释:

total:总物理内存
used:已使用内存
free:完全未被使用的内存
shared:应用程序共享内存
buffers:缓存,主要用于目录方面,inode值等
cached:缓存,用于已打开的文件
-buffers/cache:应用程序使用的内存大小,used减去缓存值
+buffers/cache:所有可供应用程序使用的内存大小,free加上缓存值

其中:
total = used + free
-buffers/cache=used-buffers-cached,这个是应用程序真实使用的内存大小(931M)
+buffers/cache=free+buffers+cached,这个是服务器真实还可利用的内存大小(944M)

方法三:cacti监控的cache memory,从图中来看,缓存满了。

CentOS系统下的cache Memoryry

通过下面的方法来进行清理,即执行两条命令。

[root@sky9896 /]# sync #防止丢失数据

[root@sky9896 /]#echo 1 >/proc/sys/vm/drop_caches #释放页缓存

[root@sky9896 /]# echo 2> /proc/sys/vm/drop_caches #释放目录和节点

[root@sky9896 /]# echo 3>/proc/sys/vm/drop_caches #清空所有缓存

执行完后,再查看内存状态,如下:

[root@sky9896 /]# free -m

total used freeshared buffers cached

Mem:1876 7561119 0 0 36

-/+ buffers/cache: 719 1156

Swap:2023 138 1885

cacti监控的cached memory,由619.46M降到62.36M

CentOS系统下的cache Memoryry

说明,通过手动的方式成功清除linux缓存。