注意:首先我们需要使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。
的值可以为0~3之间的任意数字,代表着不同的含义:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
[root@ok Desktop]# cat /proc/sys/vm/drop_caches
0
[root@ok Desktop]# file /proc/sys/vm/drop_caches
/proc/sys/vm/drop_caches: empty
[root@ok Desktop]# echo 1 >/proc/sys/vm/drop_caches
[root@ok Desktop]# free -h
total used free shared buffers cached
Mem: 11G 966M 10G 53M 392K 161M
-/+ buffers/cache: 804M 10G
Swap: 3.6G 0B 3.6G
查看内存条个数:
[root@ok Desktop]# dmidecode | grep -A16 "Memory Device$"
Memory Device
Array Handle: 0x0005
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 8192 MB
Form Factor: SODIMM
Set: None
Locator: ChannelA-DIMM0
Bank Locator: BANK 0
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Kingston
Serial Number: 7633D911
Asset Tag: None
Part Number: KHX1600C9S3L/8G
--
Memory Device
Array Handle: 0x0005
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: SODIMM
Set: None
Locator: ChannelB-DIMM0
Bank Locator: BANK 2
Type: DDR3
Type Detail: Synchronous
Speed: 1600 MHz
Manufacturer: Samsung
Serial Number: 20A9C496
Asset Tag: None
Part Number: M471B5173DB0-YK0
清除pagecache:
[root@ok ~]# sync
[root@ok ~]# sysctl -w vm.drop_caches=1
vm.drop_caches = 1
[root@ok ~]# free -h
total used free shared buffers cached
Mem: 11G 1.1G 10G 82M 412K 192M
-/+ buffers/cache: 980M 10G
Swap: 3.6G 0B 3.6G
清空 dentries 和 inodes:
[root@ok ~]# sync
[root@ok ~]# sysctl -w vm.drop_caches=2
vm.drop_caches = 2
[root@ok ~]# free -h
total used free shared buffers cached
Mem: 11G 1.2G 10G 79M 5.7M 224M
-/+ buffers/cache: 959M 10G
Swap: 3.6G 0B 3.6G
清空所有缓存 pagecache、dentries 和 inodes):
[root@ok ~]# sync
[root@ok ~]# sysctl -w vm.drop_caches=3
vm.drop_caches = 3
[root@ok ~]# free -h
total used free shared buffers cached
Mem: 11G 1.1G 10G 101M 1.5M 210M
-/+ buffers/cache: 956M 10G
Swap: 3.6G 0B 3.6G