第一行所列出的是当前的内存的使用情况
第二行则是swap交换空间的使用情况。
系统中used并不是所有的被使用的内存。因为当Linux将一根文件载入到RAM中,当程序用完这个文件的时候,不需要将它从RAM中移除。如果还有可用的RAM,Linux将会在RAM中缓存这个文件,这样如果一个程序再次访问这个文件,访问速度将会得到大幅度的提升。如果系统的确需要为活动进程提供RAM,那么RAM将不会缓存这么多文件。由于文件缓存的存在,通常在服务器运行相当长的一段时间后,都会显示仅有少量RAM空闲,而其余的都被缓存占用。
想要找出进程到底真正使用了多少RAM,你必须刨除RAM中的文件缓存。就比如上图已用的1821904K的RAM有70636K是被缓存所使用。所以实际上只有1751268K的是被使用的。如果两个相减得出的值很大,swap空间使用也很大,就可能是内存的问题。注:内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖, 该数值(cached数值)即为这些内容已存在于内存中的交换区的大小。相应的内存再次被换出时可不必再对交换区写入。
在top中输入M就可以使之按照内存的使用情况排序。
在linux内核中也有一个内存耗尽(OOM)终结者,如果低内存导致系统运行危险,它就会介入。当系统内存快要耗尽的时候,OOM终结者就会开始终止进程。有些情况下,终止的可能是占用大量RAM的进程,但是它并不能够保证不会终止未占用大量RAM的进程。这样系统可能会变得不大稳定,所以你不得不重启机器以确保所有的系统进程都在正常运行。如果OOM终结者介入,在/var/log/syslog中会看到进程杀死的数据。