September 2010
M T W T F S S
« Jul    
 12345
6789101112
13141516171819
20212223242526
27282930  

Oracle Database未来的发展方向 – Exadata (2)

Kaya 发表于 os2ora.com

下一个问题,Exadata如何解决CPU方面的瓶颈呢?

在Exadata之前,我想无非两种思路,第一在原来节点上用更多更强的CPU,第二采用更多的RAC节点。

不过在Exadata的架构中,CPU的瓶颈已经从基本上得到很大的缓解,这就是存贮节点上CPU处理能力的介入。

还是以一个实际SQL为例:

SELECT t0.id
   FROM
  (SELECT id
 FROM t0
    WHERE id LIKE '%54234245%'
  ) t0,
  (SELECT id
     FROM t1
    WHERE id LIKE '%54234245%'
  ) t1,
  (SELECT id
     FROM t2
    WHERE id LIKE '%54234245%'
  ) t2,
  (SELECT id
     FROM t3
    WHERE id LIKE '%54234245%'
  ) t3,
  (SELECT id
     FROM t4
    WHERE id LIKE '%54234245%'
  ) t4,
  (SELECT id
     FROM t5
    WHERE id LIKE '%54234245%'
  ) t5,
  (SELECT id
     FROM t6
    WHERE id LIKE '%54234245%'
  ) t6
  WHERE
    t0.id=t1.id
AND t0.id=t2.id
AND t0.id=t3.id
AND t0.id=t4.id
AND t0.id=t5.id
AND t0.id=t6.id
;

下面是一个可能的结果,第一行的数据是没有启用Smart Scan技术的结果,第二行是启用了Smart Scan的结果。

Type Elapsed DB CPU% IO(MB/s) Cell CPU% Network (MB/s)
pre-Exadata 21s 99 400 1 400
Exadata 11s 80 700 50 8

 

第一行比较容易理解,存贮阵列/结点的数据以400 MB/s的速度通过Storage network传输到DB结点进行,DB CPU的利用率达到了99%。

显而易见,这时瓶颈出现在DB结点的CPU上,如果启用了Smart Scan,则Exadata会在存贮结点上首先对数据进行处理(存贮结点的CPU利用率为50%),然后把其中有效的数据以8 MB/s的速度传输到DB结点进行处理,这时DB结点的CPU利用率下降为80%。SQL的完成时间却变为原来的一半。

Exadata在这里做了哪些事情呢?

1. 只进行有效数据的传输,这里,只传输满足条件id like ‘%54234245%’的7个表的指定列 id 的数据。

2. 解决了原来pre-Exadata可能碰到的网络瓶颈问题

3. 分担了DB 节点的工作负载

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">