资源合设导致监听负载增加导致的TNS-12518错误的处理过程

1.现象:

某现场由于设备少,E2E/DryRun/OPT各种环境合设,在做相应的6000万用户性能测试的时候,容器会经常出现TNS-12518导致重启问题,在容器的日志中的日志前期主要集中在JAVA的前台程序,后面再计费的后台程序上也偶尔出现。前台容器日志:

后台计费容器日志:

2.检查过程

2.1.检查各项数据库的的session和processor参数等设置情况。

2.2.检查Oracle用户的资源设置情况使用ulimit -a和查看/etc/security/limits.conf的nproc的参数设置。

2.3查看系统服务限制情况

root@bsdccdb01db01[/root]# systemctl show --property DefaultTasksMax
DefaultTasksMax=18446744073709551615
root@bsdccdb01db01[/root]#

root@bsdccdb01db01[/root]# cat /proc/145835/limits
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 10485760 10485760 bytes
Max core file size 10737418240 10737418240 bytes
Max resident set unlimited unlimited bytes
Max processes 16384 16384 processes
Max open files 65536 65536 files
Max locked memory unlimited unlimited bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 2061613 2061613 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
root@bsdccdb01db01[/root]#

3.检查容器的druid连接池的参数设置和确认ojdbc的版本,怀疑连接池设置的超时错误,没有看到相应的超时设置。

4.检查容器的vm和数据库主机的超时设置均为标准的900s,没有不一致的情况。

5.检查listener.ora和sqlnet.ora文件无异常发现,根据metalink上建议增加了

INBOUND_CONNECT_TIMEOUT_LISTENER_TCC1=120

SQLNET.INBOUND_CONNECT_TIMEOUT = 120

也无效果。

6.检查系统的信号量相关参数配置

cat /proc/sys/kernel/sem
10240 83886080 4096 8192
root@bsdccdb02db01[/root]# ipcs -ls

------ Semaphore Limits --------
max number of arrays = 8192
max semaphores per array = 10240
max semaphores system wide = 83886080
max ops per semop call = 4096
semaphore max value = 32767

root@bsdccdb01db01[/root]# ipcs -s

------ Semaphore Arrays --------
key semid owner perms nsems
0x2a353928 7 grid 600 364
0xcb79b400 41 oracle 600 9004
0x776394f8 45 oracle 600 10240
0x776394f9 46 oracle 600 10240

root@bsdccdb01db01[/root]#

7.由于环境合设置上面部署多套Oracle数据库实例资源,而此现场是按照6000W用户规模来进行压测,导致数据库链接数量非常庞大,导致系统的sem的设置不足导致资源不足,调整sysctl.conf文件中的sem设置,重新生效后

数据库不再提示12518错误。

root@bsdccdb01db01[/root]# cat /proc/sys/kernel/sem
20480 83886080 4096 819
root@bsdccdb01db01[/root]#

root@bsdccdb01db01[/root]# ipcs -ls

------ Semaphore Limits --------
max number of arrays = 8192
max semaphores per array = 20480
max semaphores system wide = 83886080
max ops per semop call = 4096
semaphore max value = 32767


root@bsdccdb01db01[/root]# ipcs -s

------ Semaphore Arrays --------
key semid owner perms nsems
0x2a353928 7 grid 600 364
0xcb79b400 41 oracle 600 9004
0x776394f8 45 oracle 600 10240
0x776394f9 46 oracle 600 10240
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值