我在一台具有 4GB RAM 的服务器上运行 Web 和 DB。当我使用 free -m 检查内存时,我可以看到大部分内存都在缓存中。
free -m
total used free shared buff/cache available
Mem: 3534 1507 973 25 1052 1676
Swap: 8191 0 8191
有什么方法可以找出哪些进程是从缓存提供服务的,或者哪些进程正在获取缓存,因为每次我都必须使用同步命令来清除可用内存。
答案1
一般来说你应该不是去做。空闲内存是未使用的内存,浪费资源。内核知道它在做什么:只要内存没有更好的用途,它就会将其用于 I/O 缓冲区或磁盘缓存。当进程运行需要更多内存时,内核将自动分配它。
除非你可以措施交换空间和内存的使用之间不平衡,因此您不应干扰内存分配参数。