https://github.com/famousdraw

DB2 OSERR : EAGAIN (11) "Resource temporarily unavailable" 分析

分析20220302:
2022-03-01-16.08.02.835487+480 E4669090A740 LEVEL: Error (OS)
PID : 7144388 TID : 1 PROC : db2stop
INSTANCE: db2iacrm NODE : 000
EDUID : 1
FUNCTION: DB2 UDB, oper system services, sqloRemoteShell, probe:40
MESSAGE : ZRC=0x8300000B=-2097151989
CALLED : OS, -, fork
OSERR : EAGAIN (11) "Resource temporarily unavailable"
DATA #1 : String, 5 bytes
ACRMB
DATA #2 : String, 8 bytes
db2iacrm
DATA #3 : String, 8 bytes
db2iacrm
DATA #4 : String, 15 bytes
/db2home/sqllib
DATA #5 : String, 27 bytes
/db2home/sqllib/bin/db2rcmd
DATA #6 : signed integer, 4 bytes
0
DATA #7 : String, 105 bytes
Search for ossError*Analysis probe point after this log entry for further
self-diagnosis of this problem.

2022-03-01-16.08.02.837694+480 E4669831A451 LEVEL: Error
PID : 7144388 TID : 1 PROC : db2stop
INSTANCE: db2iacrm NODE : 000
EDUID : 1
FUNCTION: DB2 UDB, oper system services, sqloRemoteShell, probe:40
MESSAGE : ZRC=0x870F00F9=-2029059847=SQLO_PROCESS_LIMIT
"no resources to create process"
DATA #1 : String, 35 bytes
Error running remote shell program.
DATA #2 : String, 12 bytes
/usr/bin/rsh

2022-03-01-16.08.02.837899+480 E4670283A489 LEVEL: Error
PID : 7144388 TID : 1 PROC : db2stop
INSTANCE: db2iacrm NODE : 000
EDUID : 1
FUNCTION: DB2 UDB, oper system services, sqloPdbInitiateRemoteConnection, probe:180
MESSAGE : ZRC=0x870F00F9=-2029059847=SQLO_PROCESS_LIMIT
"no resources to create process"
DATA #1 : <preformatted>
Could not invoke remote shell program, likely due to an out-of-resource condition on machine ACRMB

 

 


####分析
https://www.ibm.com/support/pages/db21018e-system-error-occurred-command-line-processor-could-not-continue-processing-0

DB21018E A system error occurred. The command line processor could not continue processing
Troubleshooting

Problem
用户有多个load 任务并发执行时,遇到DB21018E 系统错误

Symptom
load 应用程序的 log中的错误信息:

[04066201609012226404523835191144239668427039_04066_nbtjy_D_QHBI132]:201
6-09-01 10:26:884:[INFO]=????:DB21018E A system error occurred.The command line processor could not continue processing.

DB21018E A system error occurred. The command line processor could not
continue processing.

节点0上的诊断日志中的错误信息:

2016-08-29-23.02.40.339812+480 E696274546A349 LEVEL: Severe (OS)
PID : 12845716 TID : 1 PROC : db2
INSTANCE: qhbiinst NODE : 000
HOSTNAME: bdwy1
EDUID : 1
FUNCTION: DB2 UDB, oper system services, sqloForkDaemon, probe:60
CALLED : OS, -, fork
OSERR : EAGAIN (11) "Resource temporarily unavailable"

2016-08-29-23.02.40.342625+480 E696274896A570 LEVEL: Severe (OS)
PID : 11010804 TID : 1 PROC : db2
INSTANCE: qhbiinst NODE : 000
HOSTNAME: bdwy1
EDUID : 1
FUNCTION: DB2 UDB, oper system services, sqloForkDaemon, probe:130
MESSAGE : ZRC=0x8300000B=-2097151989

CALLED : OS, -, fork
OSERR : EAGAIN (11) "Resource temporarily unavailable"
DATA #1 : Bitmask, 4 bytes
0x00000004
DATA #2 : String, 105 bytes
Search for ossError*Analysis probe point after this log entry for further
self-diagnosis of this problem.

Cause
当执行load操作命令 db2 " load xxx.. xx"。进程db2会启动一个新的db2bp进程来处理该命令,而操作系统如 AIX 的一些参数设置如 maxuproc 或 ulimit -a 会造成db2bp进程启动失败,比如maxuproc为每个用户能启动的最大进程数,超过该参数值时,无法启动新的db2bp。

Environment
Diagnosing The Problem
增大maxuproc,修改"ulimit -a"中的相关参数为unlimited

请参考相关信息:
http://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.basetrf1/fork.htm
http://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.qb.server.doc/doc/t0008488.html

Document Information
More support for:
Db2 for Linux, UNIX and Windows

Software version:
9.7, 10.1, 10.5, 11.1

Operating system(s):
AIX, Linux, Windows

Document number:
551143

Modified date:
19 February 2020

 

根据db2support信息
System Attributes, '/usr/sbin/lsattr -El sys0'
maxuproc 128 Maximum number of PROCESSES allowed
建议修改maxuproc成4096

Updating environment settings for a partitioned DB2 installation (AIX)
https://www.ibm.com/docs/en/db2/10.5?topic=environment-updating-settings-partitioned-db2-installation-aix
Log on to the computer as a user with root user authority.
Set the AIX maxuproc (maximum number of processes per user) device attribute to 4096 by entering the following command:
chdev -l sys0 -a maxuproc='4096'
as root
chdev -l sys0 -a maxuproc='4096'

 

posted on 2022-03-03 09:34  红色MINI  阅读(401)  评论(0编辑  收藏  举报

导航