近日,有客户咨询主机侦探关于Linux VPS服务器的内存占用问题:为什么Linux VPS经常空闲内存很少,到底需要多大的内存才够用?其实,有时候并不是了内存真的不够用,而是一种表象罢了,实际上这也是体现了Linux内存管理的一个非常优秀的特性。
可能很多人用惯了Windows系统,在Windows下可以使用任务管理器查看当前进程对于内存的消耗情况。一般来说,Windows在只需要内存时,才为应用程序分配内存,否则再大容量的内存空间也不会充分得到利用。
而在Linux的特点就是充分利用物理内存。无论物理内存还有多大,Linux都将其充分利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。只要物理内存还有空闲时,就不会释放其占用内存,即使占用内存的程序已经被关闭,该程序所占用的内存也会用来做缓存使用,好处就是对于开启过的程序、或是读取刚存储过的数据比较快。
这里介绍一个“页高速缓存(page cache)”的概念,它是Linux内核所使用的主要磁盘高速缓存,主要用来减少对磁盘的I/O操作,具体地讲,是通过把磁盘中的数据缓存到物理内存中,把对磁盘的访问变为对物理内存的访问,而从内存访问数据比从磁盘访问速度更快。
需要注意的是,上面用来做缓存所占用的内存是可以通过指令随时释放的,可以认为这部分内存没有实际被使用,也可以认为它是空闲的物理内存。
很多新手朋友对自己购买的Linux VPS服务器的内存总是占用过多而担心,其实是没有必要的。我们一般看内存到底够不够用,需要看swap的占用率,swap的占用率过高,才有可能是内存不够用了。