在一次生产库大量监听连接异常的报错时候,想到了queuesize,想要去查看queuesize的大小配置,而查看queuesize的配置,需要执行truss -feao /tmp/truss.out lsnrctl start这个命令来追踪监听启动的过程,根据追踪日志查看配置。但是这里有两个问题:
1.
我们的用户没权限执行truss命令,一般root 用户和oracle用户是分离管理的
2.
这里边需要重启监听,生产上肯定是不能操作的
那怎么办呢?因为我们看到监听文件配置中没有queuesize相关配置,那就说明是默认,那么默认值到底是多少呢?
所幸在MOS上找到相关文档,有关介绍几个不同平台和不同版本对应的默认值:
Linux:
Oracle Version Default QUEUESIZE Value
9.2 10317 listen(8, 128)
10.1 15520 listen(8, 128)
10.2 30842 listen(8, 128)
11.1 31140 listen(8, 128)
11.2 2099 listen(8, 128)
也就说Linux的queue size默认值是128
HP:
QUEUESIZE 4096
AIX:
QUEUESIZE 1024
Solaris
Oracle Version Default QUEUESIZE Value
9.2 20423: listen(10, 5, 1)
10.1 26948: listen(10, 32, 1)
10.2 4621: listen(10, 32, 1)
11.1 12585: listen(10, 32, 1
11.2 552: listen(10, 32, SOV_DEFAULT)
Solaris从10g以后queuesize是32。但是从11.2.0.4以后,queuesize默认就是SOMAXCONN这个参数的值了
需改queuesize的方法:
在监听文件中加queuesize的配置:
LISTENER =
(ADDRESS =(PROTOCOL = TCP)(HOST=SAMPLE.COM)(PORT = 1521)(QUEUESIZE=99))
阅读(6643) | 评论(0) | 转发(0) |