Exadata V2 架构分析 (2)
Kaya 发表于 os2ora.com
既然提到了Flash Cache,如果不提下对OLTP的提速好象会缺少点什么。对OLTP系统而言,缓存是一个极其重要的设计,不管是数据库节点上的内存上的Buffer Cache,还是存贮节点上的Flash Cache(Exadata),还有数据库节点上的Flash Cache(某些平台,如Linux)。
前几天在Eygle的性能调优课程上听过他提过的一句话,缓存为王(致敬,呵呵),深以为然,这应该是他极其重要的实践总结,对于OLTP系统而言,这真是一点不为过。
下面的表格列出了一个实际场景,分别测试了不同的buffer 命中率和引入Flash Cache之后的性能变化。
| Cache | Executions | Buffer Hit % | CPU Time (s) | user IO time (s) | Elapsed Time | total Elapsed Time (s) | CPU % | response time | SpeedUp Factor |
| Buffer Cache | 30000 | 85 | 70 | 4082 | 00:02:20 | 4138 | 3 | 0.138 | 1 |
| Flash Cache | 30000 | 85 | 69 | 265 | 00:00:12 | 323 | 36 | 0.011 | 13 |
| Buffer Cache | 30000 | 100 | 19 | 0 | 00:00:02 | 26 | 61 | 0.001 | 158 |
上面的三行对应的OLTP负载是相同的,但总的执行时间却是大大不同的,从2分多钟到10几秒到2秒。唯一的区别就在于Cell Flash Cache, Buffer Cache 的介入。
上面这些数据起码可以得出几个结论:
1. Buffer Cache会减少CPU Time,但Cell Flash Cache不会。这从另一个方面说明,IO调度是需要CPU的。
2. Cell Flash Cache和Buffer Cache都大大减少了User IO Time。最终的结果就是大大提升了响应时间,例如上面我们得到了从13倍到158倍的性能提升。
3. Cell Flash Cache和Buffer Cache都提高了DB节点的CPU利用率。例如上面我们的CPU利用率从3%提高到36%和61%。
Exadata V2宣传的一个令人惊诧的数字之一是每秒钟一百万个8K的随机IO。很恐怖吧,1,000,000 IO/s.
其实,如果只是进行读操作而没有写操作的话,这个数字会更令人恐怖。下面是一个截图。把里面的峰值(300k)除以3乘以14,就得到整个机器14个cell可以达到的一个IOPS: 1.4 million IO/s.

[...] This post was mentioned on Twitter by Kaya. Kaya said: Exadata V2 架构分析 (2) http://goo.gl/fb/dZQsx [...]