为什么linux服务器的内存占有率总是很高

Linux piniu 1000浏览 0评论

补充资料:
我有一台linux 邮件服务器它的内存总是很高,都到达96%左右.我把邮件程序进程停了也是很高.大家都说linux是先试用内存的.是linxu的优点.我就不太明白了.电脑的内存占有率低一点不是好一点吗?请问大家只要如何解释.谢谢!刚学linux不久.

最佳答案:
建议楼主看一下LINUX内存机制是怎么运作的,了解了基础知识,对于理解和操作是有很大帮助的。

Linux 优先使用物理内存,当物理内存还有空闲时,linux是不会施放内存的,即时占用内存的程序已经被关闭了(这部分内存就用来做缓存了)。也就是说,即时你有2G的内存,用过一段时间后,也会被占满。这样做的好处是,启动那些刚开启过的程序、或是读取刚存取过得数据会比较快,对于服务器很有好处。

你可以用 free 指令查看一下输出,用 used 减去 buffer 和 cache,才是你运行中的程序所占用的空间,举例如下:

total     used     free    shared    buffers    cached

Mem:   516300   504264  12036     0       88396    236792

-/+ buffers/cache: 179076 337224

Swap: 1544184 21276 1522908

504264 – 88396 – 236792 = 179076

也就是说目前正在被使用的内存只有 179 兆。不要被 504兆的used吓住了。

windows则总是给内存留下一定的空闲空间,即时内存有空闲也会让程序使用一些虚拟内存,这样做的好处是,启动新的程序比较快,直接分给它些空闲内存就可以了,而linux下呢?由于内存经常处于全部被使用的状态,则要先清理出一块内存,再分配给新的程序使用,因此,新程序的启动会慢一些。

另外,内存是随机访问的,也就是说,无论你的内存占用了多少,数据的存取时间都是相同的,跟硬盘不同。


发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • * 昵称:
  • * 邮箱: