<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OS与Oracle &#187; balanced system</title>
	<atom:link href="http://www.os2ora.com/tag/balanced-system/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.os2ora.com</link>
	<description>专注于现实世界Oracle数据库的高性能，高可扩展性与新一代数据库Exadata架构</description>
	<lastBuildDate>Mon, 19 Sep 2011 09:10:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Oracle Database未来的发展方向– Exadata (3)</title>
		<link>http://www.os2ora.com/oracle-database-future-exadata-3/</link>
		<comments>http://www.os2ora.com/oracle-database-future-exadata-3/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 13:59:53 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[balanced system]]></category>
		<category><![CDATA[bottleneck]]></category>
		<category><![CDATA[Infiniband]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[发展方向]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/oracle-database-future-exadata-3/</guid>
		<description><![CDATA[前面分析的主要是Exadata如何高效地进行计算。通过在存贮结点加入数据处理能力，Exdata不仅大大地提升了处理性能，而且解决了以前的Oracle架构上可能存在的CPU和网络的瓶颈问题。

一个Database Machine有8个DB节点，14个Cell (存贮)结点。在V1版本中，一个Cell可以提供1GB/s的带宽，14个Cell节点总共能提供的带宽为14GB/s。对于8个DB节点，每个节点都是两个CPU，每个CPU 4 个Cores。所以一个Database Machine中DB节点总共有64个Cores。

8 DB Nodes + 14 Cell Nodes = Balanced System

这是一个经过实践证明过的平衡的一个配置。
记得今年9月底和阿里巴巴的DBA的一个关于Exadata的交流活动上，新成立的阿里云的同事也到场了。Exadata的架构引起了大家的共鸣，会后一个反应是，有人觉得Exadata与云计算有些异曲同工之妙。其实这也难怪，Exadata本来就是一个关注大规模并行计算的集群系统。特别是智能的存贮节点的引入，更使得每个存贮节点能够分担一个大计算里的一小部分，并且这些智能的存贮节点还有线性的可扩展性，当需要更好的性能时，只要简单地相应增加存贮节点和/或DB节点就可以实现了。这难怪不是一个“云计算”的例子吗......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>前面分析的主要是Exadata如何高效地进行计算。通过在存贮结点加入数据处理能力，Exdata不仅大大地提升了处理性能，而且解决了以前的Oracle架构上可能存在的CPU和网络的瓶颈问题。</p>
<p>一个Database Machine有8个DB节点，14个Cell (存贮)结点。在V1版本中，一个Cell可以提供1GB/s的带宽，14个Cell节点总共能提供的带宽为14GB/s。对于8个DB节点，每个节点都是两个CPU，每个CPU 4 个Cores。所以一个Database Machine中DB节点总共有64个Cores。</p>
<p>8 DB Nodes + 14 Cell Nodes = Balanced System</p>
<p>这是一个经过实践证明过的平衡的一个配置。对于一个典型的DW并行查询，类似我们在第一篇文章里提到的，也就是下面的这个查询:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> a<span style="color: #66cc66;">.</span>no<span style="color: #66cc66;">,</span>
       sum<span style="color: #66cc66;">&#40;</span>case
             when a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'A'</span><span style="color: #66cc66;">&#41;</span> then
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
             else
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">5</span>
           end<span style="color: #66cc66;">&#41;</span> score1<span style="color: #66cc66;">,</span>
       sum<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">....</span>
           <span style="color: #66cc66;">...</span>
              <span style="color: #66cc66;">&#41;</span> scoreN
  <span style="color: #993333; font-weight: bold;">FROM</span> fact_table a
 <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> a<span style="color: #66cc66;">.</span>no
;</pre></div></div>

<p>在运行的大部分时间，DB节点的64个Cores保持100%的利用率，14个Cell节点的总IO吞吐量保持在14GB/s上。</p>
<p>记得今年9月底和阿里巴巴的DBA的一个关于Exadata的交流活动上，新成立的阿里云的同事也到场了。Exadata的架构引起了大家的共鸣，会后一个反应是，有人觉得Exadata与云计算有些异曲同工之妙。其实这也难怪，Exadata本来就是一个关注大规模并行计算的集群系统。特别是智能的存贮节点的引入，更使得每个存贮节点能够分担一个大计算里的一小部分，并且这些智能的存贮节点还有线性的可扩展性，当需要更好的性能时，只要简单地相应增加存贮节点和/或DB节点就可以实现了。这难道不是一个“云计算”的例子吗？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/oracle-database-future-exadata-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Database未来的发展方向 – Exadata (2)</title>
		<link>http://www.os2ora.com/oracle-database-future-exadata-2/</link>
		<comments>http://www.os2ora.com/oracle-database-future-exadata-2/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 08:19:46 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[balanced system]]></category>
		<category><![CDATA[bottleneck]]></category>
		<category><![CDATA[Infiniband]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[发展方向]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/oracle-database-future-exadata-2/</guid>
		<description><![CDATA[下一个问题，Exadata如何解决CPU方面的瓶颈呢？ 

在Exadata之前，我想无非两种思路，第一在原来节点上用更多更强的CPU，第二采用更多的RAC节点。 

不过在Exadata的架构中，CPU的瓶颈已经从基本上得到很大的缓解，这就是存贮节点上CPU处理能力的介入......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>下一个问题，Exadata如何解决CPU方面的瓶颈呢？</p>
<p>在Exadata之前，我想无非两种思路，第一在原来节点上用更多更强的CPU，第二采用更多的RAC节点。</p>
<p>不过在Exadata的架构中，CPU的瓶颈已经从基本上得到很大的缓解，这就是存贮节点上CPU处理能力的介入。</p>
<p>还是以一个实际SQL为例:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> t0<span style="color: #66cc66;">.</span>id
   <span style="color: #993333; font-weight: bold;">FROM</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
 <span style="color: #993333; font-weight: bold;">FROM</span> t0
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t0<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t1
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t1<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t2
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t2<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t3
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t3<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t4
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t4<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t5
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t5<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t6
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t6
  <span style="color: #993333; font-weight: bold;">WHERE</span>
    t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t1<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t2<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t3<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t4<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t5<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t6<span style="color: #66cc66;">.</span>id
;</pre></div></div>

<p>下面是一个可能的结果，第一行的数据是没有启用Smart Scan技术的结果，第二行是启用了Smart Scan的结果。</p>
<table border="1" cellspacing="0" cellpadding="2" width="563">
<tbody>
<tr>
<td width="102" valign="top">Type</td>
<td width="52" valign="top">Elapsed</td>
<td width="76" valign="top">DB CPU%</td>
<td width="88" valign="top">IO(MB/s)</td>
<td width="100" valign="top">Cell CPU%</td>
<td width="143" valign="top">Network (MB/s)</td>
</tr>
<tr>
<td width="102" valign="top">pre-Exadata</td>
<td width="52" valign="top">21s</td>
<td width="76" valign="top">99</td>
<td width="88" valign="top">400</td>
<td width="100" valign="top">1</td>
<td width="143" valign="top">400</td>
</tr>
<tr>
<td width="102" valign="top">Exadata</td>
<td width="52" valign="top">11s</td>
<td width="76" valign="top">80</td>
<td width="88" valign="top">700</td>
<td width="100" valign="top">50</td>
<td width="143" valign="top">8</td>
</tr>
</tbody>
</table>
<p> </p>
<p>第一行比较容易理解，存贮阵列/结点的数据以400 MB/s的速度通过Storage network传输到DB结点进行，DB CPU的利用率达到了99%。</p>
<p>显而易见，这时瓶颈出现在DB结点的CPU上，如果启用了Smart Scan，则Exadata会在存贮结点上首先对数据进行处理(存贮结点的CPU利用率为50%)，然后把其中有效的数据以8 MB/s的速度传输到DB结点进行处理，这时DB结点的CPU利用率下降为80%。SQL的完成时间却变为原来的一半。</p>
<p>Exadata在这里做了哪些事情呢？</p>
<p>1. 只进行有效数据的传输，这里，只传输满足条件id like &#8216;%54234245%&#8217;的7个表的指定列 id 的数据。</p>
<p>2. 解决了原来pre-Exadata可能碰到的网络瓶颈问题</p>
<p>3. 分担了DB 节点的工作负载</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/oracle-database-future-exadata-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle Database未来的发展方向 – Exadata (1)</title>
		<link>http://www.os2ora.com/oracle-database-future-exadata-1/</link>
		<comments>http://www.os2ora.com/oracle-database-future-exadata-1/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 15:45:00 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[balanced system]]></category>
		<category><![CDATA[bottleneck]]></category>
		<category><![CDATA[Infiniband]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[发展方向]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/oracle-database-future-exadata-1/</guid>
		<description><![CDATA[Exadata应该说代表着Oracle Database未来的发展方向。这句话可不是一句广告词，依我看来，Exadata完全有这个资格享受这种待遇。

一个计算系统，最主要的是追求CPU，IO，Network之间的平衡。使这些计算资源能充分地发挥潜能。比如说，如果IO的扫描能力能达到10GB/s，如果存贮阵列到计算结点的带宽不能达到10GB/s，那么IO的扫描能力就不能得到充分发挥。又比如，如果CPU每秒钟只能处理6GB/s的数据量，10GB/s的IO扫描能力也不能能到充分发挥。

对一个计算系统另一个重要的衡量指标是如何有效地利用计算资源，这同样地包括CPU，IO，Network。比如说，虽然Network可以达到每秒10GB/s的带宽，但如果这些数据都是无效的(与本次操作无关的其它业务数据)，那么这只是对网络带宽的浪费。这就涉及到一个重要的课题：如何高效地利用最少的计算资源在最适当的时候对数据进行操作。

在原来Oracle Database的基础上，为满足上面提到的两个基本点，Exadata进行了富有创新的对基本设施的改进。举一个例子，当数据刚从存贮结点扫描出来时，马上进行初步的加工，把无效的数据丢弃。同时，Exadata推出了一个实现了CPU，IO，Network之间平衡的典型的机器配置。这可以说是Oracle为业界推出了自己在Oracle Database的最佳实践的一个最佳解决方案......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>Exadata应该说代表着Oracle Database未来的发展方向。这句话可不是一句广告词，依我看来，Exadata完全有这个资格享受这种待遇。</p>
<p>一个计算系统，最主要的是追求CPU，IO，Network之间的平衡。使这些计算资源能充分地发挥潜能。比如说，如果IO的扫描能力能达到10GB/s，如果存贮阵列到计算结点的带宽不能达到10GB/s，那么IO的扫描能力就不能得到充分发挥。又比如，如果CPU每秒钟只能处理6GB/s的数据量，10GB/s的IO扫描能力也不能能到充分发挥。</p>
<p>对一个计算系统另一个重要的衡量指标是如何有效地利用计算资源，这同样地包括CPU，IO，Network。比如说，虽然Network可以达到每秒10GB/s的带宽，但如果这些数据都是无效的(与本次操作无关的其它业务数据)，那么这只是对网络带宽的浪费。这就涉及到一个重要的课题：如何高效地利用最少的计算资源在最适当的时候对数据进行操作。</p>
<p>在原来Oracle Database的基础上，为满足上面提到的两个基本点，Exadata进行了富有创新的对基本设施的改进。举一个例子，当数据刚从存贮结点扫描出来时，马上进行初步的加工，把无效的数据丢弃。同时，Exadata推出了一个实现了CPU，IO，Network之间平衡的典型的机器配置。这可以说是Oracle为业界推出了自己在Oracle Database的最佳实践的一个最佳解决方案。</p>
<p>那么，Exadata如何解决Network方面的瓶颈呢？</p>
<p>首先是Infiniband的运用。一个Infiniband的端口一般可以提供2GB/s的流量，这是千兆网的16倍以上，4Gb的光纤网络的5倍以上。</p>
<p>同时，Exadata只进行有效数据的传输，最具体讲，则是Smart Scan 技术的运用。举个例子，对于下面这个查询</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> a<span style="color: #66cc66;">.</span>no<span style="color: #66cc66;">,</span>
       sum<span style="color: #66cc66;">&#40;</span>case
             when a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'A'</span><span style="color: #66cc66;">&#41;</span> then
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
             else
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">5</span>
           end<span style="color: #66cc66;">&#41;</span> score
  <span style="color: #993333; font-weight: bold;">FROM</span> fact_table a
 <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> a<span style="color: #66cc66;">.</span>no</pre></div></div>

<p>下面是一个可能的结果，第一行的数据是没有启用Smart Scan技术的结果，第二行是启用了Smart Scan的结果。</p>
<table border="1" cellspacing="0" cellpadding="2" width="672">
<tbody>
<tr>
<td width="105" valign="top"><strong><em>Type</em></strong></td>
<td width="69" valign="top"><strong><em>Elapsed</em></strong></td>
<td width="80" valign="top"><strong><em>DB CPU%</em></strong></td>
<td width="89" valign="top"><strong><em>IO(GB/s)</em></strong></td>
<td width="101" valign="top"><strong><em>Storage CPU</em></strong></td>
<td width="226" valign="top"><strong><em>Storage Network(GB/s)</em></strong></td>
</tr>
<tr>
<td width="105" valign="top">Non-Exadata</td>
<td width="69" valign="top">90s</td>
<td width="80" valign="top">57</td>
<td width="89" valign="top">7</td>
<td width="101" valign="top">1</td>
<td width="226" valign="top">7</td>
</tr>
<tr>
<td width="105" valign="top">Exadata</td>
<td width="69" valign="top">45s</td>
<td width="80" valign="top">81</td>
<td width="89" valign="top">11</td>
<td width="101" valign="top">30</td>
<td width="226" valign="top">4</td>
</tr>
</tbody>
</table>
<p>第一行比较容易理解，存贮阵列/结点的数据以7GB/s的速度通过Storage network传输到DB结点进行，DB CPU的利用率达到了57%。</p>
<p>显而易见，这时瓶颈出现在存贮网络上，如果启用了Smart Scan，则Exadata会在存贮结点上首先对数据进行处理(存贮结点的CPU利用率为30%)，然后把其中有效的数据以4GB/s的速度传输到DB结点进行处理，由于DB结点接收到更多的有效数据(90*7/45=14GB/s)，CPU也变得更加繁忙起来(81%)。</p>
<p>Exadata在这里做了哪些事情呢？</p>
<p>1. 只进行有效数据的传输，这里，只传输表fact_table里三列的数据(no, key和score)</p>
<p>2. 解决了原来pre-Exadata可能碰到的网络瓶颈问题</p>
<p>3. 让DB结点的CPU更加高效的利用起来</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/oracle-database-future-exadata-1/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

