Linux启动新的进程的时候会优先使用物理内存,当物理内存还有空闲时,linux是不会释放内存的(只要还有空间,那么进程就在可用空间中启动,而不是先清理一下内存然后再启动新的进程),即使占用内存的程序已经被关闭了(这部分内存就用来做缓存了)。也就是说,即时你有64G的内存,用过一段时间后,也会被占满。这样做的好处是,启动那些刚开启过的程序、或是读取刚存取过得数据会比较快,对于服务器很有好处。可以用 free 指令查看一下输出,用 used 减去 buffer 和 cache,才是你运行中的程序所占用的空间。
也可以使用htpo命令来查看资源占用。其中内存部分,绿色的为真正的内存占用,蓝色和黄色部分分别代表cached和buffered,并不是真正的内存占用,当物理内存即将占满时,这部分内存会被释放,腾出空间来给新启动的进程使用。