【翻译自mos文章】在win2003 sp1下,遇到无法解释的数据库性能下降

本文描述了在Windows 2003 Service Pack 1环境下出现的不可解释的数据库性能下降问题,常见症状包括一般性的数据库运行缓慢、磁盘I/O速度降低、网络延迟增加等,并提供了诊断步骤及解决建议。

翻译自mos文章:在win2003 sp1下,遇到无法解释的数据库性能下降
Unexplained Database Slowdown Seen on Windows 2003 Service Pack 1 (Doc ID 464683.1)

Applies to:

Oracle Server - Enterprise Edition - Version 9.2.0.1 to 11.1.0.6 [Release 9.2 to 11.1]
z*OBSOLETE: Microsoft Windows Server 2003
Microsoft Windows Itanium (64-bit)
z*OBSOLETE: Microsoft Windows XP (64-bit AMD64 and Intel EM64T)
Microsoft Windows Server 2003 (64-bit Itanium)Microsoft Windows Server 2003Microsoft Windows XP (64-bit AMD64 and Intel EM64T)


Description

Periodic Database slowdowns seen in Windows 2003 environments with lots of memory, running Service Pack 1

Occurrence

Environments with a high level of concurrency, many CPU's and large amounts of physical ram are prone to this type of problem.

Symptoms

 

Symptoms

Symptoms include any or all of the following:

1.  General slowdowns in the database, which may appear to be hung, even though systemstate dumps may not show evidence of hangs or locking contention.  Sometimes, the database may recover from these slowdowns on its own, and begin responding with no user intervention.  At other times, the database may appear to be hung for long periods of time.

2.  Other symptoms may include slow disk I/O - i.e. a large increase in average I/O times may be observed when reviewing AWR reports covering the time period in question. 

3.  It may also be observed that network latency increases dramatically.  If running in a RAC environment, you may notice an increase in cluster latency - i.e. an increase in the wait times for global cache requests and messages  (again, as observed in AWR reports or in some cases as seen via real-time monitoring tools).

4.  If running in a RAC environment, we may see IPC timeouts in the ipcdbg logfiles.  On Oracle 10g, the ipcdbg logs are found in the $ORACLE_HOME\rdbms\log subdirectory.   In Oracle 9i, the ipcdbg logs are found in C:\WINDOWS\system32\osd9i.   Examples of entries in the ipcdbg logfiles that indicate a slowdown would be entries such as the following:

 

Thread(06c4): 10/25/07 05:59:56 TCP/IP IPC ErrorLog, version[ 10.2.0.2.0.99 ]
10/25/07 05:59:58 |  INFO   | 02dc | Initialized proc [oracle : opprodrc1 :####] from interface at#######
10/25/07 07:35:27 |  ERROR  | 1ae8 | IPC_TCPConnect:  async connect err 10048 to [opp :####:###:#####]
10/25/07 07:38:44 |  ERROR  | 1c6c | IPC_TCPConnect:  async connect err 10048 to [opp :###:###:#####]
10/25/07 07:43:37 |  ERROR  | 1414 | [ipcosd.c :####] IPC_TCPListen2:  Timeout 63050 exceeds max 25000 + margin 5000
10/25/07 07:43:37 |  ERROR  | 1414 | [ipcosd.c :####] IPCInitPort:  Timeout 63140 exceeds max 25000 + margin 5000
10/25/07 07:43:40 |  ERROR  | 15f0 | [ipcosd.c :####] IPC_TCPListen2:  Timeout 64950 exceeds max 25000 + margin 5000

 

5.  Monitoring of system resources via Perfmon or other monitoring utilities may also reveal an increase in system time, indicating a large amount of work being done by the OS kernel.

 

 

Diagnosing the problem:

This problem can be difficult to diagnose, and it is therefore advised that the solution recommended below be implemented proactively.  The symptoms listed in this note will not always manifest in the same way.

In some cases, this problem may be diagnosed by verifying via Perfmon stats, AWR reports, and ipcdbg logs as noted above.   In order to get confirmation of the problem, as noted above, systemstate dumps may not show any symptoms other than slow processing, so it may be necessary to run adplus and take user level dumps of the oracle.exe process, in addition to collecting the normal systemstate dumps and hanganalyze dumps.   Having a combination of systemsate dumps and adplus dumps of the oracle.exe process may make this issue easier to debug, but in some cases it may also be necessary to get a kernel dump to confirm the exact cause.  The OS or Hardware vendor should be consulted for assistance in obtaining a kernel dump.

In order to take an adplus dump of the oracle.exe process, at a high level, you must install the 'Debugging Tools for Windows'  and then run adplus as such:

adplus -hang -p <PID for oracle.exe>

Be sure to use the correct PID corresponding to the correct oracle.exe.  If you are running an ASM instance, you will most likely have at least two oracle.exe processes, but you will most likely want to run adplus and dump the oracle.exe associated with the database instance, NOT the ASM instance

For a complete description of what adplus is and how to run it, please refer to the following Microsoft Support note.

http://support.microsoft.com/kb/286350/en-us

@ For the issue described in the alert, the Adplus dumps of the oracle process may show threads

 

@ kiswapcontext

 

@ As noted above, in some cases, it may be necessary to take a

 

Workaround

The cause of this problem may be the following Microsoft bug, which is described in the following links:

http://support.microsoft.com/kb/919341


http://support.microsoft.com/kb/922658

 

This issue is known to be a problem in Windows 2003 with Service Pack 1, and can affect any application with large memory requirements, including single-instance Oracle database, Oracle RAC Databases and non-Oracle databases.  It is strongly advised that this Windows hotfix be installed proactively on all Oracle installations running on Windows 2003 with Service Pack 1, or that those installations be upgraded to Service Pack 2 proactively.

Patches

Microsoft has a hotfix available on top of Service Pack 1, and the issue should also be resolved by upgrading to Service Pack 2.  As noted above, see the following referenced Microsoft article for information on this fix:

 http://support.microsoft.com/kb/919341/en-us

 

 

适用于TMC2160、24V电压最大6A电流的MOS管,如IRF3205、FQP30N06L、SI4435DY,在不同温度环境下的性能表现如下: ### 导通电阻 温度升高,MOS管的导通电阻通常会增大。以IRF3205为例,在室温25°C时导通电阻一般为8mΩ左右,当温度上升到100°C时,导通电阻可能会增大到十几毫欧。这是因为温度升高会使半导体材料中的载流子迁移率下降,从而导致电阻增加。对于FQP30N06L和SI4435DY也有类似的特性,FQP30N06L室温下导通电阻约20mΩ,高温时电阻增加;SI4435DY室温下极低的导通电阻(约5mΩ),在高温环境也会有所上升。导通电阻的增加会使MOS管在导通状态下的功率损耗增大,发热更加严重,影响系统效率和稳定性。 ### 阈值电压 MOS管的阈值电压会随温度变化而改变。一般来说,温度升高,阈值电压会降低。例如,IRF3205的阈值电压在常温下可能为2 - 4V,当温度升高到一定程度时,阈值电压可能会降低到1 - 3V。阈值电压的降低可能会导致MOS管更容易开启,在一些对开关精度要求较高的电路中,可能会引起误触发等问题。 ### 漏极电流 温度对MOS管的漏极电流有显著影响。在高温环境下,MOS管的最大允许漏极电流会减小。例如,IRF3205在常温下最大持续电流可达110A,但在高温环境下,其最大允许电流可能会下降到几十安培。这是因为高温会使MOS管的散热条件变差,为了避免过热损坏,需要降低其工作电流。对于FQP30N06L和SI4435DY也是如此,高温会限制它们的电流承载能力。 ### 开关速度 温度升高会使MOS管的开关速度变慢。这是因为温度升高会影响MOS管内部的载流子运动速度和电容充放电时间。例如,在低温环境下,MOS管的开关时间可能在几十纳秒到几百纳秒之间,而在高温环境下,开关时间可能会增加到微秒级别。开关速度的变慢会影响TMC2160的控制性能,导致电机控制的精度下降。 ### 击穿电压 MOS管的击穿电压通常会随温度升高而增加。不过,在实际应用中,一般不会让MOS管工作在接近击穿电压的状态。例如,IRF3205的耐压值为55V,在不同温度下,其击穿电压可能会有一定的波动,但只要工作电压保持在安全范围内(如24V),就不会出现击穿问题。 以下是一个简单的模拟代码,用于演示温度对MOS管导通电阻的影响(仅为概念演示,非实际精确模拟): ```python # 假设的温度与导通电阻关系函数 def rds_on_at_temp(temp): # 室温25°C时的导通电阻(以IRF3205为例) rds_on_25 = 0.008 # 温度系数(假设值) temp_coeff = 0.001 return rds_on_25 * (1 + temp_coeff * (temp - 25)) # 模拟不同温度下的导通电阻 temperatures = [25, 50, 75, 100] for temp in temperatures: rds_on = rds_on_at_temp(temp) print(f"温度 {temp}°C 时,导通电阻: {rds_on * 1000} mΩ") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值