Windows上如何禁用TCP/IP自动调优特性

之前有网友在t.askmaclean.com提问版上提问关于远程PL/SQL Developer连接Oracle数据库发现查询v$session会hang住的问题,而本地连接(local connection)则可以正常查询。

 

分析了问题相关的10046 trace和MOS上的一些案例发现可能是由Bug 9087501: SELECT FROM V$SESSION AND SOME OTHER DICTIONARY VIEWS HANG FROM A REMOTE CLIENT 所引起, 该Bug Note 还指出在Windows Vista上存在因为操作系统默认启用了TCP/IP Auto-tuning(TCP Window Scaling)从而可能导致使用如PL/SQL Developer这样的客户端登录数据库后某些查询Hang住的问题。 而在其他Windows版本中(如Win 7)没有默认启用该TCP/IP Auto-tuning特性,所以默认不存在该问题; 看起来Vista还真是一个失败的作品。

 

该TCP Window Scaling(接收窗口自动调谐级别)用以优化TCP网络的吞吐量,更多信息参考一下文本:

 

TCP Window Scaling For larger window sizes to accommodate high-speed transmission paths, RFC 1323 (ietf.org/rfc/rfc1323.txt) defines window . . . → Read More: Windows上如何禁用TCP/IP自动调优特性

利用ProcDump工具诊断Windows平台上的Oracle数据库性能

ProcDump与Procexp一样是Windows平台上的内部调试工具,Procexp采用图形界面体现系统整体及个别进程的性能信息,而ProcDump则与我们在Unix平台上使用的性能分析工具类似使用CLI命令行界面。

Procdump目前的版本号为3.04,可以从其Homepage上下载到该工具,该监控软件由Mark Russinovich开发,是一款Free Software。其官方介绍如下:

ProcDump is a command-line utility whose primary purpose is monitoring an application for CPU spikes and generating crash dumps during a spike that an administrator or developer can use to determine the cause of the spike. ProcDump also includes hung window monitoring (using the same definition of a window hang that . . . → Read More: 利用ProcDump工具诊断Windows平台上的Oracle数据库性能

利用Procexp工具监控Windows平台上的Oracle数据库性能

我们可以从http://technet.microsoft.com/en-us/sysinternals下载到Windows平台上的系统内部调试工具包,这些工具中大部分是由Mark Russinovich编写的,其中最为著名的tools包括进程管探测器(Process Explorer)、Regmon等。

这里我们要介绍的是使用Procexp工具监控Windows平台上的Oracle性能信息。Procexp是一套功能齐全的进程信息管理工具,它使用图形界面显示(GUI),可以把它看做是Windows平台上taskmgr.exe任务管理器的扩展,事实上它完全足以代替taskmgr,前提是用户需要有一定的OS基础。

我们来看看Procexp针对运行在Windows上的Oracle(一种不太推荐的组合)时所能监控的信息:

1.进程属性

包括进程的性能数据,包括CPU、Virtual Memory、Physical Memory、I/O、Handles 查看详细的线程信息(包括个别线程的CPU使用率) 查看线程堆栈(thread stack) Kill/suspend thread

2.系统全局信息

提供系统级别的性能数据

3.创建进程的DUMP文件

创建FULL或minidump转储以便诊断BUG

4.识别文件句柄(Handle)或动态链接库(DDL)

可以用来判断进程锁住了那些DDL文件或普通文件句柄

当我们在Windows上成功启动Oracle实例后就可以通过Procexp.exe工具来监控数据库性能了,使用十分简便,选中”Oracle.exe”进程之后右键菜单Properties即可浏览进程的属性:

选中Performance面板后可以浏览进程的性能数据,这就像是Windows上的nmon命令,注意要使用管理员身份运行Procexp.exe,否则可能性能数据无法正确收集而显示N/A:

选中Performance Graphy面板浏览图形化的性能趋势图:

 

点击Thread面板我们可以浏览Oracle.exe进程下的线程信息,Windows平台上的一点不便就是无法通过线程信息直接判断该线程是哪个”后台进程”或”服务进程”,需要配合v$process视图才能做到。

SQL> select spid ,program from v$process; SPID PROGRAM ———————— ——————– PSEUDO 3124 ORACLE.EXE (PMON) 4328 ORACLE.EXE (VKTM) 5096 ORACLE.EXE (GEN0) 2840 ORACLE.EXE (DIAG) 2068 ORACLE.EXE (DBRM) . . . → Read More: 利用Procexp工具监控Windows平台上的Oracle数据库性能

SQL Server 2008 R2 Competitive Roundtable–New Editions and Capabilities

SS2008 R2 Datacenter Edition Datacenter offers the same features and functionality as the SS2008 R2 Enterprise edition It from differs from Enterprise Edition by supporting: Up to 256 logical processors Unlimited virtualization Multi-instance dashboard views and drilldowns Policy-based resource utilization evaluation Complex event processing with Microsoft SQL Server StreamInsight The potential to sustain up to . . . → Read More: SQL Server 2008 R2 Competitive Roundtable–New Editions and Capabilities