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