首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx因“失忆”而被杀?

问Nginx因“失忆”而被杀?
EN

Stack Overflow用户
提问于 2012-07-04 04:19:23
回答 1查看 3.9K关注 0票数 0

我的nginx有8个进程,每个进程大约占用1500万内存。

有时,我的nginx也会因此而被杀(Dmesg)

21228总分页缓存50页交换缓存统计数据:添加85页,删除35页,查找63/64空闲交换区= 2031300kB总交换页= 2031608kB 3407856页RAM 3180034页内存3180034页HighMem 290515页保留36448页共享491788页非共享 内存不足:杀死进程16373 (nginx)得分5013或儿童

我搜索了一下,发现的低内存用完了,所以oom杀手开始工作了.

以下是我的问题:

  1. 我得到了16 get的内存,但低内存仅为800 m(空闲-lm),如何使用其余的内存呢?谷歌告诉我我可以使用补丁kernel-hugemem,但它只适用于centos4,me是centos5.2,所以.

  1. 对于一个使用150 it内存的nginx进程来说,这是不是太过了?你们从来没遇到过这样的问题?

  1. 低内存使我感到困惑,32位系统不用PAE就可以使用3GB以上的内存,那么为什么要使用低/高内存呢?不是内核错误吗?
EN

回答 1

Stack Overflow用户

发布于 2012-07-04 07:13:36

我注意到您有很多免费的交换,这应该会阻止OOM杀手的激活,但由于某种原因没有激活。服务器错误的This question表示,未使用交换的OOM意味着失败的分配处于内核模式,这是由一个需要大量内存的驱动程序造成的。这也解释了为什么空闲的HighMem不能满足请求(内核模式可以从特定区域请求内存)。您应该在dmesg中看得更远一些,看看是否有任何线索,比如回溯。

至于问题的第三部分,HighMen和LowMem在使用PAE时是有区别的,因为它将物理地址空间扩展到36位,而虚拟地址空间仍然是32位。访问全部潜在的64G物理地址不能像访问固定的4G子集那样快,因此内核将内存分开,并试图在“低”区域保持最关键的性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11322360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档