buffer 与 cache 的区别,参考:linux memory: buffer vs cache
A buffer is something that has yet to be “written” to disk.A cache is something that has been “read” from the disk and stored for later use.
shared memory 用于不同进程之间共享数据,是进程间通信的一种方法,参考:what is shared memory ?
free 结果公式
首先,总内存,这一点都是一样的。
Mem[free] 代表未被分配的内存,并不是当前的可用内存。在 Linux 内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是读取刚存取过得数据会比较快。所以我个人觉得那些安卓机上所谓的清理内存软件是没啥意义的,用的不好反而会使系统更卡,因为当你再次打开已关闭的程序时,又要重新加载所需要的文件。
其次,前两行的关系。
free 命令用法
free -t
清理优化
更多优化内容参考:Linux内存优化——/proc/sys/vm/优化
问题监测
首先看 free 的第二行中 free 是否过小,如果过小再 top 命令,shift + M 按内存排序,看哪个进程内存耗用多。更多参考:Linux服务器Cache占用过多内存导致系统内存不足问题的排查解决