Linux中内存buffer和cache的区别详解linux内存buffer和cached




Linux中内存buffer和cache的区别详解linux内存buffer和cached

2022-07-20 20:23:20 网络知识 官方管理员

细心的朋友会注意到,当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法.那么我来谈谈这个问题

cache和buffer的区别:

Cache:高速缓存,是位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Cache又分为一级Cache(L1Cache)和二级Cache(L2Cache),L1Cache集成在CPU内部,L2Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KBL2Cache.
Buffer:缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。

Free中的buffer和cache:(它们都是占用内存):

buffer:作为buffercache的内存,是块设备的读写缓冲区
cache(名词):作为pagecache的内存,文件系统的cache
如果cache(名词)的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache(动词)住,那么磁盘的读IO必会非常小。

先来说说free命令

[root@server~]#free-mtotalusedfreesharedbufferscachedMem:2491638601094-/+buffers/cache:58191Swap:5110511

发表评论:

最近发表
网站分类
标签列表