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