Oracle监听的优化思路

Oracle监听的优化思路优化思路如下:

  1. 为减少客户端和服务端网络之间TCP包的传输数量,可在sqlplus客户端设置参数ARRAYSIZE。假设ARRAYSIZE默认大小为15,表示应用每次将获取15行的数据。如果TCP包大小(排除包头等元数据之后,真正可存放1460B大小的数据)超过ARRAYSIZE行数据的总字节大小时,我们应评估一个TCP包能容纳多少行数据,并设置最优的ARRAYSIZE大小。过小的ARRAYSIZE,需要用更多的TCP包来传递业务数据,这将影响业务程序的性能。
  2. 由2.1节可知Oracle Net Services位于OSI模型的会话层,参数SDU(Session Data Unit)表示网络会话层(Network Session (NS) layer)和网络传输层之间的缓冲大小。在Net*8 和 Oracle*Net (8.0 或更高版本)中,专用服务器模式的缓冲大小为2KB,共享服务器模式为32KB。从Oracle 11.2开始,专用服务器模式的缓冲大小增长为8KB,共享服务器模式为65KB。在静态注册的环境下可以在listener.ora和tnsnames.ora增加关键字(SDU=4096)来增加缓冲大小。如果是在共享服务器模式下,则可以在DISPATCHERS增加关键字SDU=8192来增加缓冲区大小。而对于动态注册环境,只需要在客户端和服务端的配置文件sqlnet.ora中增加DEFAULT_SDU_SIZE = 8192即可。
  3. 调整操作系统的TCP的发送和接受缓冲区大小。如:AIX系统的参数tcp_sendspace和tcp_recvspace。
  4. 调整Oracle的TCP的发送和接受缓冲区大小。从Oracle 10g开始,可以通过调整SEND/RECV_BUF_SIZE大小来达到这一目的。从经验上来看,这两个参数在广域网(WAN)传输中可能会提高一定的性能。
  5. 通过设置监听参数QUEUESIZE来提高监听处理的最大并发数,当最大并发数超过QUEUESIZE时可能会出现错误:TNS-12535 / ORA-12535: TNS:operation timed out。调整该参数需要结合操作系统相关参数来进行,详见MOS文章:214122.1。
  6. 增加监听来处理更多的并发数。比如在服务器端分别开设1521端口和1522端口的监听,根据监听的繁忙程度,客户端可以选择相对空闲的监听来连接数据库。
  7. 将客户端连接方式从短连接修改为长连接或者使用连接池。大量的短连接无疑会消耗更加多的系统CPU时间片和Oracle资源。
  8. 如果Oracle客户端和服务端处于同一台服务器,连接数据库可以考虑用IPC协议代替TCP协议。使用IPC协议可以绕过监听环节,直接和数据库相连。如下所示:

[ora10g@capaa ~]$ sqlplus "zhoul/zhoul"

  1. 检查监听日志大小,过大的监听日志在某些Oracle版本下可能会导致连接缓慢,甚至监听无法启动,如下所示:

[oracle@hzmc admin]$ lsnrctl start

LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 02-MAR-2011 23:37:53

Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.

Starting /oracle/app/oracle/product/9.2.0/bin/tnslsnr: please wait...

TNS-12547: TNS:lost contact

TNS-12560: TNS:protocol adapter error

  TNS-00517: Lost contact

   Linux Error: 32: Broken pipe

注意 ping命令调用的是ICMP/IP协议,而非TCP/IP协议,且不在节点之间传输TCP数据。用ping命令监测服务器之间的网络环境,其响应时间的快慢并不能真实地反应出网络环境。如果ping速度比较快,只能说明服务器通过各种路由能够快速到达对端服务器而已。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值