近期新部署了一台数据库服务器,操作系统为windowsNT12 ,oracle为11.2.4,硬件配置为CPU*24,内存*128G,网络为专线,部署完成后经过一段时间内部测试,单个客户端连接正常。随后切换至生产环境,随着客户端连接增加,约每秒200个连接,此时客户端open connect操作每次接近1秒,测试各个客户端tnsping服务器时间400~600毫秒,单个客户端时<20毫秒。检查了网络,实时网速100M是OK的,关闭防火墙,检查tns,监听,dns均未发现问题。为何延迟会这么厉害,一直没找到原因。不得已,重新安装服务器,改用linux+oracle,延迟问题解决。难道是windows+oracle效率不好?

解决方案 »

  1.   

    确实有这个方面的原因。除了 tnsping 之外,还做过其他方面的测试吗? 
      

  2.   

    先从网络开始测试的,防火墙前置,改后置,同时监控服务器和数据库负载情况,生产接入以后都没有出现很高的负载,数据库日志和前端日志分别显示有连接超时的告警,怀疑是监听或dns的配置的问题,反复修改配置,用hosts或直接用IP都尝试了,生产连接一上来,延迟就开始大幅增加,直接ping的话延迟没有影响。最终在生产部门的压力下,放弃重来。
      

  3.   


    看楼主后来的描述,貌似不是这个意思?
    windows和linux很大的一个不同是:两者对内存的使用很不一样。但是感觉不是操作系统的问题,可能还有其他不同的因素主题帖没有描述。
      

  4.   


    看楼主后来的描述,貌似不是这个意思?
    windows和linux很大的一个不同是:两者对内存的使用很不一样。但是感觉不是操作系统的问题,可能还有其他不同的因素主题帖没有描述。贴子描述里省略了很多验证的中间过程,一开始是怀疑网络问题,防火墙,DNS服务器一一排除产生问题的可能性;随后怀疑是短连接过多造成的堵塞,增加了最大连接数,调整超时设置,增加监听端口,也没有收到效果;第三步,根据现有的运行良好的另一套生产库的设置,对新库进行优化,也没有起到作用;最后只好重新部署到linux系统,切换以后发现延迟现象大大改善。所以截止目前也没有找出延迟高的原因。
      

  5.   

    这个和最大连接数没有关系,如果真没办法改用连接池,建议至少把默认的登录审计关掉:noaudit session whenever successful;,否则不提共享池中的争用,就光sys.aud$表上的争用就会让你的登录变慢,但这无法解释你换到linux情况变好了,当然迁到linux是正确的选择。