Linux 哪个进程正在使用我的内存?

Linux 哪个进程正在使用我的内存?,linux,memory,redhat,Linux,Memory,Redhat,我基本上已经关闭了所有进程,但通过运行“top”命令,我仍然可以使用18GB: 什么进程正在使用我的19GB内存?我的操作系统是RHEL6。 如何检查 -----------------------------更新------------------------- “free”命令基本上给出相同的结果。因为这个更新是 在我最初的帖子发布几个小时后,确切的数字可能会有所不同,但是 大缓存现象仍然存在:缓存了15GB的空间 total used fr

我基本上已经关闭了所有进程,但通过运行“top”命令,我仍然可以使用18GB:

什么进程正在使用我的19GB内存?我的操作系统是RHEL6。 如何检查

-----------------------------更新------------------------- “free”命令基本上给出相同的结果。因为这个更新是 在我最初的帖子发布几个小时后,确切的数字可能会有所不同,但是 大缓存现象仍然存在:缓存了15GB的空间

             total       used       free     shared    buffers     cached
Mem:         32168      15592      16575          0         76      14813
-/+ buffers/cache:        702      31465
Swap:         1983          0       1983
18688628k缓存


大约18 GB用于缓存IO操作,即缓存内存。它用于将硬盘中的数据缓存到RAM中,并在需要时从RAM中使用。就读/写速度而言,RAM比硬盘快得多


这种行为对于Linux操作系统来说是完全正常的。如果您的一些进程需要更多的RAM,那么一些缓存数据将被“释放”,并且该数量的RAM将可供进程使用。内核会处理好所有这些,不用担心。

键入
按内存使用情况排序。另见。尝试“free”命令,您将看到缓冲区/缓存中使用了多少。我认为您所说的基本正确,但我需要运行一些测试程序。一个问题是:如果缓存的内存被“使用”,为什么它被归类为“已使用”?或者,如果缓存的内存“可以在需要时使用”,为什么不将其归类为“空闲”呢?请帮我澄清这些概念,我会检查你的答案。谢谢。在我个人看来,它既是免费的又是使用的。如果进程需要更多的RAM,则不会释放“真正使用的”RAM(不是缓存的RAM)-将使用交换。如果发生这种情况,缓存的RAM将被释放。也许“如果需要可以免费”的名称太长,无法编写代码:)这里有更好的解释:另一个很好的解释:仅供参考如果你真的想刷新缓存,可以这样做:sudo sync&&sudo sysctl-w vm.drop\u caches=3&&sudo sysctl-w vm.drop\u caches=0
             total       used       free     shared    buffers     cached
Mem:         32168      15592      16575          0         76      14813
-/+ buffers/cache:        702      31465
Swap:         1983          0       1983