缓存印象
缓存给人的感觉就是可以提高程序运行速度,比如在桌面环境中,第一次打开一个大型程序可能需要10秒,但是关闭程序后再次打开可能只需5秒了。这是因为运行程序需要的代码、数据文件在操作系统中得到了缓存,第二次运行程序时可以直接中内存中读取不需要经过磁盘的读取了。除了文件内容外,系统还对文件系统的目录项进行了缓存,这样就不用依次重新从磁盘上查找目录和文件了。从此也可以看出文件/目录缓存是与文件关联的,而不是与某个特定的进程关联的。因为进程结束后,文件缓存依然存在。
缓存查看
Linux中的文件缓存可以通过free命令来进行查看,下面是从一台运行数据库服务的服务器上得到的结果:
[cadmin@bigdb ~]$ free -h
total usedfreeshared buffers cached
Mem: 188G 187G 799M 33G 0B 72G-/+ buffers/cache: 115G 73G
Swap: 63G2.8G 60G
-h参数表示使用易于查看的数据单位(默认使用byte)
可以看到第一行的free列中空间只有799MB了,不过不必慌张,cached列中显示占用的空间中72GB用来做了缓存,缓存不是必须存在的,在内存空间紧张时可以减少缓存项。也可以手工进行释放。
丢弃缓存
[cadmin@bigdb ~]$ ls /proc/sys/vm/admin_reserve_kbytes hugepages_treat_as_movable mmap_min_addr page-cluster
block_dump hugetlb_shm_group nr_hugepages panic_on_oom
compact_memory