通过ODP.net连接到Oracle DB 11时,TTFB非常高

时间:2015-03-20 01:13:53

标签: asp.net oracle get web odp.net

经过多天搜索Google后,我仍然遇到以下问题:

  1. 我有一个内部网站,它托管在Win2012服务器上,并使用ODP.NET连接到oracle db。
  2. 问题是无论我做什么,无论IIS配置或服务器负载如何,用于加载ceratain页面的TTFB都是巨大的 - 超过20秒。
  3. 当同一站点托管在不同的主机(测试环境)上时,TTFB <1s。
  4. 系统设置 - 生产服务器是win2012服务器,测试服务器是相同的。相同 - 相同的操作系统,相同的补丁级别,相同的服务,相同的设置。 这两台机器都是虚拟机,具有24GB RAM和2xXeon 2.2Ghz
  5. 到目前为止,我已经进行了以下测试 - 将tnsnames中的oracle主机更改为主机IP - 没有效果。停止在服务器上运行的所有服务 - 没有效果。系统负载在任何时候都不会超过50%CPU时间,45%内存,4Mbps / 2x100Mbps。磁盘I / O操作是可以接受的 - 最多不超过5MB / s。
  6. 显示了ODP.NET跟踪的差距
  7. 当工作进程的数量从1做3增加时,注意到了轻微的改进,但是在服务器更改当前处理用户的WP之后,他的网站需要重复登录。 简而言之,从服务器A开始,站点加载一个页面25-30秒,从服务器B(相同)加载页面1-2s。
  8. 我的要求是:请您推荐我应该在哪里努力,或者是否有基于Windows的工具可以让我将TTFB分解为比chrome / IE提供的更详细的视图。 谢谢你的回复。

1 个答案:

答案 0 :(得分:1)

首先启用日志记录并查看是否有任何突出显示:

<configuration>
 <oracle.dataaccess.client>
   <add key="TraceFileName" value="c:\temp\odpnet1.trc"/>
   <add key="TraceLevel" value="63"/>
   <add key="TraceOption" value="0"/>
 </oracle.dataaccess.client>

“某些页面”部分让我失望了。您的测试服务器连接到同一个数据库,是吗?测试服务器一直有更好的性能?换句话说,您确定这与查询性能无关?测试服务器是否通过相同的网络到达服务器(tracert oracleserver)?