ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【2018-05-28】【转】关于Linux的缓存内存 Cache Memory详解

【2018-05-28】【转】关于Linux的缓存内存 Cache Memory详解 [历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2018-05-28 标题【转】关于Linux的缓存内存 Cache Memory详解分类编程 标签linuxLinux内存中cache memory和free memory简单笔记参考链接《 https://blog.csdn.net/bingqingsuimeng/article/details/52044671 》《 https://blog.csdn.net/ty_hf/article/details/63402099 》监测Linux系统的内存使用情况使用【free】是最直接的。查看机器的内存使用信息【/proc/meminfo】cat /proc/meminfofreetotal used free shared buffers cachedMem: 16425996 10727220 5698776 0 380904 9389832-/ buffers/cache: 956484 15469512Swap: 8273464 212 8273252其中第一行用全局角度描述系统使用的内存状况total——总物理内存used——已使用内存一般情况这个值会比较大因为这个值包括了cache应用程序使用的内存free——完全未被使用的内存shared——应用程序共享内存buffers——缓存主要用于目录方面,inode值等ls大目录可看到这个值增加cached——缓存用于已打开的文件总结totalusedfreeusedbufferscached (maybe add shared also)第二行描述应用程序的内存使用前个值表示-buffers/cache——应用程序使用的内存大小used减去缓存值后个值表示buffers/cache——所有可供应用程序使用的内存大小free加上缓存值总结-buffers/cacheused-buffers-cachedbuffers/cachefreebufferscached第三行表示swap的使用used——已使用free——未使用什么是Cache Memory(缓存内存)当你读写文件的时候Linux内核为了提高读写性能与速度会将文件在内存中进行缓存这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后你会发现可用物理内存会很少。为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式Buffer Cache和Page Cache。前者针对磁盘块的读写后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。其实这缓存内存(Cache Memory)在你需要使用内存的时候会自动释放所以你不必担心没有内存可用。如果你希望手动去释放Cache Memory也是有办法的。如何释放Cache Memory(缓存内存)用下面的命令可以释放Cache MemoryTo free pagecache:echo 1 /proc/sys/vm/drop_cachesTo free dentries and inodes:echo 2 /proc/sys/vm/drop_cachesTo free pagecache, dentries and inodes:echo 3 /proc/sys/vm/drop_caches注意释放前最好sync一下防止丢失数据。
返回列表