分配48G内存时,用top看,free 只有300多M,使用中的有7G左右,而buff/cache 有41G,加起来正好有48G,凭时觉,这个应该就是内存里的,但这个到底影响吗?

看看这个说明:
buffer
即写如磁盘时,先保存到磁盘缓冲区(buffer),然后再写入到磁盘。

cache
即读磁盘时,数据从磁盘读出后,暂留在缓冲区(cache),为后续程序的使用做准备。

如何划分buffer/cache(已使用 or 空闲)
操作系统的角度:这块内存确实被操作系统使用了。
用户角度:如果用户要使用,这块内存是可以很快被回收而被用户空间程序使用,因此从用户角度而言这块内存应被划为空闲状态。
Linux这种机制的好处
这是Linux一种非常优秀的设计,目的就是为了提升磁盘IO的性能,从低速的块设备上读取的数据会暂时保存在内存中,即使数据在当时已经不再需要了,但在应用程序下一次访问该数据时,它可以从内存中直接读取,绕开了低速的块设备,从而提高系统的整体性能。
对于我本机的例子,我是装有es的,经常需要查数据,那这些数据肯定要先读到cache,下次再查时,从cache查就很快,所以这个占用很大也不影响(没有其它应用要用大内存的情况下)
而本机的例子,也是要把大量的日志写入ES,然后再写入硬盘,也是需要很大的buffer。