linux .cache目录,关于linux系统下的cache Memory

关于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       free    shared    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,从图中来看,缓存满了。

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

[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       free    shared    buffers     cached

Mem:         1876       756    1119          0        0         36

-/+ buffers/cache:        719       1156

Swap:        2023        138       1885

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

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

你可能感兴趣的:(linux,.cache目录)