现象描述:每天业务连接高峰期listener.log出现报错,但业务无明显异常.平台是oracle 9.2.0.8 + hpux 11.23 IA
TNS-12560: TNS:protocol adapter error
TNS-00530: Protocol adapter error
HPUX Error: 233: No buffer space available
经咨询HP工程师和oracle sr,原因为内存不足或者内核参数设置不合理。本主机内存380G,使用率60%,应该不存在内存不足的问题,初步定为内核参数设置;
kmeminfo
Buffer cache = 7037169 26.8g 7% details with -bufcache
[root@crmdb2:/crmdata#]kctune|grep dbc
dbc_max_pct 7 7 Immed
dbc_min_pct 5 Default Immed
? The underlying problem of these errors is the operating system.
? The HP UX system file /usr/include/sys/errno.h shows the following information
? for the OS error 233:
?
? # define ENOBUFS 233 /* No buffer space available */
?
? ENOBUFS means there is no sufficient memory available and the system(kernel)
? can not allocate any more.
? Application will usually retry the operation when it detects this error from a
? system call since it indicates there is a transient resource shortage.
? It is the Operating system that refuses the resource request from the listener.
? The virtual memory allocation routine of the OS will determine if a swap can be
? made to disk of a real memory segment thereby allowing the listener access to
? some more real memory
Oracle回复,可能是内核tcp_conn_request_max设置较小导致。
Oracle sr回复:
Hi customer,
1. HPUX Error: 233 is an HP O/S error is typically linked to memory and swap.
Did you check the memory and swap utilization when the issue happened?
2. We've seen a number of cases where this error can be caused by a low value of tcp_conn_request_max.
Please confirm about the value of the following " tcp_conn_request_max" with your sysadmin and confirm that it is as required 10240.
3. One-off occurrences of HP-UX 233 can be ignored and can be caused by timing issues during the 3-way handshake to establish the TCP connection on HPUX. Currently the listener just reports the error, and does not block.
No Valid connection is lost.
关于参数TCP_CONN_REQUEST_MAX的具体含义,但从netstat看,却明显没有因为该参数设置导致的tcp连接问题,令人遗憾
P-UX 11i TCP_CONN_REQUEST_MAX
Description: Specifies the maximum number of connection requests that the operating system can queue when the server does not have available threads. When high connection rates occur, a large backlog of TCP/IP connection requests builds up and client connections
are dropped. Adjust this setting when clients start to time out after waiting to connect. Verify this situation by issuing the netstat -p tcp command. Look for the following value: connect requests dropped due to full queue
How to view or set: Set this parameter by using the ndd -set /dev/tcp tcp_conn_request_max 8192 command.
Default value: 4096
Recommended value: In most cases the default is sufficient. Consider adjusting this value to 8192, if the default proves inadequate.
crmdb2[/tmp]netstat -p tcp
tcp:
2276246944 packets sent
4140476808 data packets (4226717825 bytes)
99244862 data packets (1684980992 bytes) retransmitted
2136121689 ack-only packets (3450143246 delayed)
350 URG only packets
92215 window probe packets
993200 window update packets
294688412 control packets
942156182 packets received
2727143257 acks (for 3082426485 bytes)
150534360 duplicate acks
0 acks for unsent data
1273908342 packets (3261709649 bytes) received in-sequence
87 completely duplicate packets (108705 bytes)
167017 packets with some dup, data (233293514 bytes duped)
10962410 out of order packets (855066444 bytes)
64 packets (348119886 bytes) of data after window
1276460 window probes
2778087255 window update packets
3792 packets received after close
5093 segments discarded for bad checksum
0 bad TCP segments dropped due to state change
6354564 connection requests
137037980 connection accepts
143392544 connections established (including accepts)
145193664 connections closed (including 1808075 drops)
1116496 embryonic connections dropped
2492425196 segments updated rtt (of 2492425196 attempts)
22433817 retransmit timeouts
121232 connections dropped by rexmit timeout
92215 persist timeouts
3538277 keepalive timeouts
3526225 keepalive probes sent
4182 connections dropped by keepalive
0 connect requests dropped due to full queue
1636314 connect requests dropped due to no listener
0 suspect connect requests dropped due to aging
0 suspect connect requests dropped due to rate
修改参数的方法倒是比较简单,并且可在线修改,经过评估,已在主机进行修改,观察下效果
修改方法是:
ndd -set /dev/tcp tcp_conn_request_max 10240
在线修改,无需重新启动应用和网络服务。
同时修改以下配置文件/etc/rc.config.d/nddconf:
TRANSPORT_NAME[1]=tcp
NDD_NAME[1]= tcp_conn_request_max
NDD_VALUE[1]=10240
分享到:
相关推荐
按照步骤来,这个问题 就会解决。你懂的。
KEY_LOAD_TIMEOUT:"keyLoadTimeOut",BUFFER_ADD_CODEC_ERROR:"bufferAddCodecError",BUFFER_APPEND_ERROR:"bufferAppendError",BUFFER_APPENDING_ERROR:"bufferAppendingError",BUFFER_STALLED_ERROR:...
ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案
NULL 博文链接:https://zx527291227.iteye.com/blog/1681235
SpringBoot整合Listener的两种方式: 1.通过注解扫描完成Listener组件的注册 1.创建一个类实现 ServletContextListener (具体实现哪个Listener根据情况来判断) 2.在类上加入注解 @WebListener 3.重写 context...
标题用pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\python3.6\...3.现在简单用numpy还是会报错:RuntimeError: The current Numpy installation (‘D:\python3.6\lib\site
yarn add key-combo-listener 使用npm: npm install key-combo-listener --save 如何使用 像这样使用它: import keyComboListener from 'key-combo-listener' ; const keyCombo = [ 'ArrowUp' , 'ArrowDown' ] ...
在centos下安装oracle数据库后启动监听时遇到的问题的解决方法。
kettle连接Oracle报错kettle连接Oracle报错报错信息 kettle连接Oracle报错 报错信息 错误连接数据库 [aaa] : org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to ...
TcpClient TcpListener Demo 案例 TcpClient TcpListener Demo 案例 TcpClient TcpListener Demo 案例 TcpClient TcpListener Demo 案例 QQ:574311505
在我们android开发中,一个应用使用的内存大小是有限制的.在应用中,如果大量的使用bitmap就很可能导致内存溢出的问题。比如我在曾经的一个项目中遇到的问题:要使用Gallery来显示多张不同的图片,在给Gallery的每个...
一篇关于web.xml配置的详细说明
listener-js JS Listener DEMO Console log: // start处理函数 设置事件监听 start ƒ (message) { console.log("onStart", message); } // doing处理函数 设置事件监听 doing ƒ (message) { console.log("onDoing...
2015-09-12 06:59:40.263: [ CRSAPP][11046]32CheckResource error for ora.p550b.LISTENER_P550B.lsnr error code = -2 2015-09-12 07:01:00.691: [ CRSEVT][12074]32CAAMonitorHandler :: 0:Could not join /opt/...
IMB云LB侦听器超时 这是一个Python3脚本,用于更改IBM Cloud负载平衡器超时设置。... 要使用正确的凭据,请执行以下操作: ... client = SoftLayer.Client(username='set me', api_key='set me') 或者像这样: : ...
Ruby::HttpListener 这是一个用于在 HTTP 上添加另一个接口的插件安装将此行添加到应用程序的 Gemfile 中: gem 'ruboty-http_listener' , github : 'amacou/ruboty-http_listener' 然后执行: $ bundle用法说执行...
Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack
tetra-listener-vagrant:TETRA-Listener流浪者模板
interface TypedEventEmitter < T> { addListener < K> ( event : K , listener : ( arg : T [ K ] ) => any ) : this ; on < K> ( event : K , listener : ( arg : T [ K ] ) => any ) : this ; once < K> ( event...
event_listener.jsx PS事件监听脚本 1、修改脚本监听数据本地化语言显示 ---0.02-01 2、函数增加注释当前历史记录名称 ---0.02-02 https://blog.csdn.net/greless/article/details/105811358