ORA-27301: OS failure message: No bufferspace available

来源:互联网 发布:金融数据分析就业方向 编辑:程序博客网 时间:2024/06/03 03:42
 OracleLinux的MTU问题

问题描述
近期有两次出现
OS system dependent operation:sendmsgfailed with status: 105
OS failure message: No buffer spaceavailable
的问题。

具体报错:
ORA-00603: Oracle server session terminatedby fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependentoperation:sendmsg failed with status: 105
ORA-27301: OS failure message: No bufferspace available
ORA-27302: failure occurred at: sskgxpsnd2

 
问题共性
在其他集群中又出现了同样的问题。
经过排查,和上一次的故障内容相似。
1、  主机操作系统都是Oraclelinux
2、  都是在内存使用紧张的时候,出现进程无法正常工作,根本原因为OS failure message: No buffer space available。
3、  主机loopback 网卡的MTU 都是65536。

来自官方的回复
On servers with High Physical Memory, the parameter vm.min_free_kbytes should be set in the order of 0.4% of total Physical Memory.
This helps in keeping a larger range of de-fragmented memory pages available for network buffers reducing the probability of a low-bu
ffer-space conditions

需知
注意上面的共性。
1、  oracle Linux
2、  lo MTU=65536
3、  内存资源紧张
4、  修改lo MTU的值后,进程启动正常

现在发现的两例状况是Oracle linux,lo MTU=65536,Oracle RAC。但是单机数据库,或者应用服务器在内存资源紧张的时候,如果调用了系统的
sendmsg()也可能出现同样的问题。所以,每一个Oracle Linux都需要看一下本机的loopback 网卡的MTU值。

那么需要做的事情如下:
1、  查看自己拥有的OracleLinux的服务器
2、  查看loopback 网卡的MTU值
3、  修改loopback 网卡的MTU值(当前生效),以及ifcfg文件(重启生效)。无需servicenetwork restart
4、  修改/etc/sysctl.conf文件,增加vm.min_free_kbytes参数,值为物理内存的0.4%。(例如8g内存,vm.min_free_kbytes=8*1024*1024*0.004=33554)。如官方文档所示增加此参数可以减少问题出现的概率。

修改方法

ifconfig lo mtu 16436
lo       Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1636660 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1636660 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1676007844 (1.5 GiB)  TX bytes:1676007844 (1.5 GiB)
          
vi /etc/sysconfig/network-scripts/ifcfg-lo
DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
# If you're having problems with gatedmaking 127.0.0.0/8 a martian,
# you can change this to something else(255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback
MTU=16436--------------------------最重要
阅读全文
0 0
原创粉丝点击