CentOS6.5 32位Out of Memery问题分析
来源:互联网 发布:监控windows 资源命令 编辑:程序博客网 时间:2024/06/05 10:49
CentOS6.5 32位Out of Memery问题分析
近日,部署应用程序的CentOS操作系统频繁kill应用进程,感到非常意外。通过对系统日志进行分析,发现syslog中输出out of memery,LowMem不足。
经过查阅大量的资料,分析发现是由于32位系统寻址空间的限制。32位linux将内存空间分为三部分:DMA、Normal(LowMem)、HighMem。其范围如下:
Zone PFN ranges:
DMA 0x00000001 -> 0x00001000
Normal 0x00001000 -> 0x000375fe
HighMem 0x000375fe -> 0x0023f800
其中,DMA为系统直接存储器空间,LowMem为系统低端内存,主要为Linux内核使用,HighMem为通用内存。(注:64位系统基本都是LowMem)
一般情况下,16G内存的IBM服务器LowMem约700M,系统启动后剩余约600M。
经过对各个进程进行分析后发现,有一个进程会对内核协议栈参数进行优化,使得socket缓冲过大,从而导致LowMem耗尽,从而触发了OOM问题。
OOM(Out Of Memery)是Linux下一种保护机制,保证机器能够正常运转的机制。该机制在内存耗尽时会通过kill一些进程来释放LowMem。同时会在系统日志中输出相应的Log。
Linux下内核各参数意义
/proc/sys/net/core/wmem_max 最大的socket写socket缓存大小(Byte)/proc/sys/net/core/wmem_default 默认的socket写socket缓存大小(Byte)/proc/sys/net/core/rmem_max 最大的socket读socket缓存大小(Byte)/proc/sys/net/core/rmem_default 默认的socket读socket缓存大小(Byte)/proc/sys/net/ipv4/tcp_wmem TCP socket写socket缓存大小(Byte)/proc/sys/net/ipv4/tcp_rmem TCP socket读socket缓存大小(Byte) /proc/sys/net/ipv4/tcp_mem TCP socket缓存大小(单位:页,每页4k大小) /proc/sys/net/ipv4/udp_mem UDP socket缓存大小(单位:页,每页4k大小) /proc/sys/net/ipv4/udp_rmem_min UDP socket接收缓冲去最小值/proc/sys/net/ipv4/udp_wmem_min UDP socket发送缓冲区最小值
特别注意:tcp_mem及udp_mem两者单位均为页内存。
最后通过调整上述参数,使得系统得到优化,同时不影响用户面性能。
其他解决方案:
1,升级系统至64位,64位系统基本都是LowMem,不存在LowMem不足问题。
2,其他方案均没有成功得到验证。
附:
1.查看socket占用内存情况:
cat /proc/net/socket
2.查看socket buff情况
slabtop:
skbuff_head_cache
Juyin@2017/12/19
- CentOS6.5 32位Out of Memery问题分析
- WAS OOM(out of memery)挂死的常规分析
- Mina2 Out of Memery原因
- c3p0连接数据库 out of memery
- Unity3d发布错误:could not allocate memery:system out of memery!
- 我的WEBLOGIC OUT OF MEMERY 错误及处理
- HttpURLConnection 上传大文件 内存溢出 out of memery
- win7 32位解决matlab out of memory问题
- 深度分析Android out of memory问题
- 论 内核 OOM(out of memery) 引发的 程序被 killed
- 32位+2G+Win7系统,如何解决out of memory问题
- VMWare10安装Centos6.5 32位网络配置问题
- Java Out of Memory 分析
- linux out of memory分析
- linux out of memory分析
- Linux Out-of-Memory分析
- Java Out of Memory 分析
- CentOS6.5 32位 搭建环境
- 四分树--uva297
- java中的序列化
- bzoj2502 清理雪道(有源汇有上下界最小流)
- 第十三届北航程序设计竞赛预赛题解
- Ubuntu报错'_NamespacePath' object has no attribute 'sort'
- CentOS6.5 32位Out of Memery问题分析
- Slim 框架学习,第十五天 _Router(六)
- Java的反射机制
- Android [小技巧] CSV文件简单使用
- ZYNQ+Vivado2015.2系列(九)基于AXI总线的等精度频率计(测量数字信号频率)
- Drools决策表的使用
- C#编写一个打字母游戏,详细代码。。。。。
- 浅谈Spring AOP
- keepalived+nginx双机热备+负载均衡