<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: 10gRAC培训 - 2 and last</title>
	<link>http://www.dbform.com/html/2007/337.html</link>
	<description>面朝大海，春暖花开</description>
	<pubDate>Thu, 04 Dec 2008 20:43:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1</generator>

	<item>
		<title>By: 木匠</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16106</link>
		<author>木匠</author>
		<pubDate>Thu, 09 Aug 2007 18:01:25 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16106</guid>
					<description>那么趁着你正热乎着, 帮忙给分析看看下面这个等待时间的起因和解决方法:

Wait: gc current request, Class: Cluster

Oracle 10.1.0.4 RAC on Linux</description>
		<content:encoded><![CDATA[<p>那么趁着你正热乎着, 帮忙给分析看看下面这个等待时间的起因和解决方法:</p>
<p>Wait: gc current request, Class: Cluster</p>
<p>Oracle 10.1.0.4 RAC on Linux</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: kamus</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16107</link>
		<author>kamus</author>
		<pubDate>Thu, 09 Aug 2007 18:36:04 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16107</guid>
					<description>在数据库的I/O中有current read 和 consistent read，在RAC中也是一样，请求从Global Cache中获取current block到最后获取到这个block之间的等待就是gc current request，如果是尝试获取consistent block，那么就是gc cr request等待。这是概念。
那么如果gc current request位于Top 5中，首先要看ave wait time是多少，通常这个值应该在5-8个msec，如果是2位数的话，那么表示gc block的获取速度是比较慢的。
至于为什么比较慢，就需要详细判断原因了。
可以查一下AWR Report中是不是还有其它的gc等待，比如gc current block busy或者gc current buffer busy，这可能是热点块的问题。
还可以查一下有没有gc block lost，这个lost应该趋近为0，因为每次lost都是在6个timeout之后才会发生，而每个timeout需要1s，这样如果有一次block lost就会消耗6s的时间，这会严重降低gc current request的平均等待时间。
另外因为gc通讯都是通过lms进程完成的，那么可以通过10046 trace本地客户端进程，再同时通过10708 trace另外节点的lms进程，互相比较，就可以明确的知道到底gc block request是慢在哪里了。</description>
		<content:encoded><![CDATA[<p>在数据库的I/O中有current read 和 consistent read，在RAC中也是一样，请求从Global Cache中获取current block到最后获取到这个block之间的等待就是gc current request，如果是尝试获取consistent block，那么就是gc cr request等待。这是概念。<br />
那么如果gc current request位于Top 5中，首先要看ave wait time是多少，通常这个值应该在5-8个msec，如果是2位数的话，那么表示gc block的获取速度是比较慢的。<br />
至于为什么比较慢，就需要详细判断原因了。<br />
可以查一下AWR Report中是不是还有其它的gc等待，比如gc current block busy或者gc current buffer busy，这可能是热点块的问题。<br />
还可以查一下有没有gc block lost，这个lost应该趋近为0，因为每次lost都是在6个timeout之后才会发生，而每个timeout需要1s，这样如果有一次block lost就会消耗6s的时间，这会严重降低gc current request的平均等待时间。<br />
另外因为gc通讯都是通过lms进程完成的，那么可以通过10046 trace本地客户端进程，再同时通过10708 trace另外节点的lms进程，互相比较，就可以明确的知道到底gc block request是慢在哪里了。</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: victor666666</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16109</link>
		<author>victor666666</author>
		<pubDate>Fri, 10 Aug 2007 00:52:16 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16109</guid>
					<description>RAC我见过的一般都是2、3个节点，遇到的工程师都胜传4~6个节点时db慢的不行，想了一下，如果对于一个点如A节点(相对于剩下的节点既是master也是requester)，是不是RAC中的点越多，对A点的请求或A对其它点的请求会越多，导致了资源紧张，尤其是在load balance做了session分摊的情况下</description>
		<content:encoded><![CDATA[<p>RAC我见过的一般都是2、3个节点，遇到的工程师都胜传4~6个节点时db慢的不行，想了一下，如果对于一个点如A节点(相对于剩下的节点既是master也是requester)，是不是RAC中的点越多，对A点的请求或A对其它点的请求会越多，导致了资源紧张，尤其是在load balance做了session分摊的情况下</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: big_bear</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16110</link>
		<author>big_bear</author>
		<pubDate>Fri, 10 Aug 2007 01:10:01 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16110</guid>
					<description>真羡慕楼主有这样的机会啊，期待楼主能够把培训资料整理发表出来。</description>
		<content:encoded><![CDATA[<p>真羡慕楼主有这样的机会啊，期待楼主能够把培训资料整理发表出来。</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: 马艺桐mayitong@hotmail.com</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16112</link>
		<author>马艺桐mayitong@hotmail.com</author>
		<pubDate>Fri, 10 Aug 2007 01:55:43 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16112</guid>
					<description>10708 trace另外节点的lms进程,楼主能否贴出一个TRACE 分析一下</description>
		<content:encoded><![CDATA[<p>10708 trace另外节点的lms进程,楼主能否贴出一个TRACE 分析一下</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: 木匠</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16114</link>
		<author>木匠</author>
		<pubDate>Fri, 10 Aug 2007 04:36:49 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16114</guid>
					<description>Thanks 10k.  你的提示非常具有技术的先进性! 哈哈.
看来我03/04年在Oracle R&#38;D积累的RAC知识已经过时了.

"gc current request"主要出现在 长事务 实时监控报告里面,
总体到数据库级别, 倒不明显.
反而gc cr grant 3-way出现在了top 5 wait events (Top 5 Timed Events) 中.

4 个节点的AWR都给你email过去了.</description>
		<content:encoded><![CDATA[<p>Thanks 10k.  你的提示非常具有技术的先进性! 哈哈.<br />
看来我03/04年在Oracle R&amp;D积累的RAC知识已经过时了.</p>
<p>&#8220;gc current request&#8221;主要出现在 长事务 实时监控报告里面,<br />
总体到数据库级别, 倒不明显.<br />
反而gc cr grant 3-way出现在了top 5 wait events (Top 5 Timed Events) 中.</p>
<p>4 个节点的AWR都给你email过去了.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: kamus</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16116</link>
		<author>kamus</author>
		<pubDate>Fri, 10 Aug 2007 15:46:29 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16116</guid>
					<description>@木匠
暂时还没有时间看你的awr，不过我会看的。gc cr grant 3-way是这样产生的，一个节点需求一个cr block，此时需要询问master，但是此block的master不在自己实例上，这样是一次网络hop，master发现这个block在另外的实例上，于是告诉另外那个实例把block传给这个请求的实例，这又是一次网络hop，另外的实例给这个实例一个lock（这是grant）让这个实例自己去从disk上读取block，这是第三次网络hop，整个这个过程就是3-way的gc cr grant，通常这个等待下面会跟随着一次磁盘I/O。</description>
		<content:encoded><![CDATA[<p>@木匠<br />
暂时还没有时间看你的awr，不过我会看的。gc cr grant 3-way是这样产生的，一个节点需求一个cr block，此时需要询问master，但是此block的master不在自己实例上，这样是一次网络hop，master发现这个block在另外的实例上，于是告诉另外那个实例把block传给这个请求的实例，这又是一次网络hop，另外的实例给这个实例一个lock（这是grant）让这个实例自己去从disk上读取block，这是第三次网络hop，整个这个过程就是3-way的gc cr grant，通常这个等待下面会跟随着一次磁盘I/O。</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: kamus</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16117</link>
		<author>kamus</author>
		<pubDate>Fri, 10 Aug 2007 15:54:22 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16117</guid>
					<description>@victor666666
这种情况理应不会出现，因为oracle会按照很简单的平分规律在所有节点中平均放置block的master，因此几乎不可能所有block的master都在A节点上，除非因为所有的检索更新操作都在A节点上完成，由于DRM所以master block被全部动态转移到A节点上了，这个跟是10gR1还是10gR2也有关系，这两个版本处理的机制是不一样的，10gR1是DYNAMIC FILE AFFINITY，10gR2是DYNAMIC OBJECT AFFINITY，这个要讲就讲多了，希望尽快有时间写出文章来吧。
你可以尝试使用_gc_undo_affinity=false和_gc_affinity_time=0 来禁用DRM，这样对于多节点的RAC环境应该会有性能的改善。</description>
		<content:encoded><![CDATA[<p>@victor666666<br />
这种情况理应不会出现，因为oracle会按照很简单的平分规律在所有节点中平均放置block的master，因此几乎不可能所有block的master都在A节点上，除非因为所有的检索更新操作都在A节点上完成，由于DRM所以master block被全部动态转移到A节点上了，这个跟是10gR1还是10gR2也有关系，这两个版本处理的机制是不一样的，10gR1是DYNAMIC FILE AFFINITY，10gR2是DYNAMIC OBJECT AFFINITY，这个要讲就讲多了，希望尽快有时间写出文章来吧。<br />
你可以尝试使用_gc_undo_affinity=false和_gc_affinity_time=0 来禁用DRM，这样对于多节点的RAC环境应该会有性能的改善。</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: piner</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16137</link>
		<author>piner</author>
		<pubDate>Mon, 13 Aug 2007 02:26:18 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16137</guid>
					<description>cpu time多也不一定是好事,只有相对,没有绝对.</description>
		<content:encoded><![CDATA[<p>cpu time多也不一定是好事,只有相对,没有绝对.</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: piner</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16138</link>
		<author>piner</author>
		<pubDate>Mon, 13 Aug 2007 02:28:43 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16138</guid>
					<description>一般的OS中，wait 是可以被利用的，cpu利用高，很大程度表示逻辑读高，而你的系统是否应当有这么高的逻辑读？</description>
		<content:encoded><![CDATA[<p>一般的OS中，wait 是可以被利用的，cpu利用高，很大程度表示逻辑读高，而你的系统是否应当有这么高的逻辑读？</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: kamus</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16139</link>
		<author>kamus</author>
		<pubDate>Mon, 13 Aug 2007 03:17:18 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16139</guid>
					<description>@piner
自然不是绝对的，但是通常来说是没有问题的。
因为如果是逻辑读高，那么应该会有其它的相关等待事件浮出水面，比如buffer busy等，所以不论何种情况CPU Time应该都不用作为关心的对象</description>
		<content:encoded><![CDATA[<p>@piner<br />
自然不是绝对的，但是通常来说是没有问题的。<br />
因为如果是逻辑读高，那么应该会有其它的相关等待事件浮出水面，比如buffer busy等，所以不论何种情况CPU Time应该都不用作为关心的对象</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: piner</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16150</link>
		<author>piner</author>
		<pubDate>Tue, 14 Aug 2007 15:24:49 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16150</guid>
					<description>buffer busy不一定的，我们的系统，这个cpu time高一般都是逻辑读高，或者是大规模计算型函数。
带来的就是负载的升高，调整掉这些就好了，其实要明白一点，逻辑读与一些计算型函数，耗费的就是cpu，如果能减少他们，当然是好事情。</description>
		<content:encoded><![CDATA[<p>buffer busy不一定的，我们的系统，这个cpu time高一般都是逻辑读高，或者是大规模计算型函数。<br />
带来的就是负载的升高，调整掉这些就好了，其实要明白一点，逻辑读与一些计算型函数，耗费的就是cpu，如果能减少他们，当然是好事情。</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: kamus</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16151</link>
		<author>kamus</author>
		<pubDate>Tue, 14 Aug 2007 18:12:14 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16151</guid>
					<description>你这样的说法当然也没有问题。
本来需要耗费30%的CPU Time在不降低负载的情况经过调优（比如优化逻辑读等）变成只需要耗费20%的CPU，这当然是好事儿。
我的意思只是说，如果你看到CPU Time在Top 5事件中不需要去特意关注他，这个事件只是说CPU在Run，而其它的等待事件更能说明系统需要调整的地方。</description>
		<content:encoded><![CDATA[<p>你这样的说法当然也没有问题。<br />
本来需要耗费30%的CPU Time在不降低负载的情况经过调优（比如优化逻辑读等）变成只需要耗费20%的CPU，这当然是好事儿。<br />
我的意思只是说，如果你看到CPU Time在Top 5事件中不需要去特意关注他，这个事件只是说CPU在Run，而其它的等待事件更能说明系统需要调整的地方。</p>
]]></content:encoded>
				</item>
	<item>
		<title>By: vecentli</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-16268</link>
		<author>vecentli</author>
		<pubDate>Wed, 05 Sep 2007 09:44:55 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-16268</guid>
					<description>&lt;blockquote&gt;&lt;a href="#comment-16116" title="View the original comment" rel="nofollow"&gt;&lt;em&gt;kamus on August 10, 2007 at 11:46 pm said:&lt;/em&gt;&lt;/a&gt;

@木匠
暂时还没有时间看你的awr，不过我会看的。gc cr grant 3-way是这样产生的，一个节点需求一个cr block，此时需要询问master，但是此block的master不在自己实例上，这样是一次网络hop，master发现这个block在另外的实例上，于是告诉另外那个实例把block传给这个请求的实例，这又是一次网络hop，另外的实例给这个实例一个lock（这是grant）让这个实例自己去从disk上读取block，这是第三次网络hop，整个这个过程就是3-way的gc cr grant，通常这个等待下面会跟随着一次磁盘I/O。&lt;/blockquote&gt;

按照这个说法，应该是4-way。
获得block的node活通知gcs，它是新的holder。

10g rac sg。

:)</description>
		<content:encoded><![CDATA[<blockquote><p><a href="#comment-16116" title="View the original comment" rel="nofollow"><em>kamus on August 10, 2007 at 11:46 pm said:</em></a></p>
<p>@木匠<br />
暂时还没有时间看你的awr，不过我会看的。gc cr grant 3-way是这样产生的，一个节点需求一个cr block，此时需要询问master，但是此block的master不在自己实例上，这样是一次网络hop，master发现这个block在另外的实例上，于是告诉另外那个实例把block传给这个请求的实例，这又是一次网络hop，另外的实例给这个实例一个lock（这是grant）让这个实例自己去从disk上读取block，这是第三次网络hop，整个这个过程就是3-way的gc cr grant，通常这个等待下面会跟随着一次磁盘I/O。</p></blockquote>
<p>按照这个说法，应该是4-way。<br />
获得block的node活通知gcs，它是新的holder。</p>
<p>10g rac sg。</p>
<p> <img src='http://www.dbform.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
				</item>
	<item>
		<title>By: (转)Oracle CPU Time</title>
		<link>http://www.dbform.com/html/2007/337.html#comment-20645</link>
		<author>(转)Oracle CPU Time</author>
		<pubDate>Fri, 21 Nov 2008 15:39:07 +0000</pubDate>
		<guid>http://www.dbform.com/html/2007/337.html#comment-20645</guid>
					<description>[...] 10gRAC培训 - 2 and last。说到了这个cpu [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] 10gRAC培训 - 2 and last。说到了这个cpu [&#8230;]</p>
]]></content:encoded>
				</item>
</channel>
</rss>
