Sun SPARC Enterprise 中端服务器上使用智能闪存缓存时 Oracle 数据库的性能测试结果

2011 年 4 月

作者:Roger Bitar

本文探讨将智能闪存缓存添加到配置中后观察到的 Oracle 数据库性能改进。测量值是使用 iGEN-OLTP 1.6 基准测试测得的,这个基准测试是为模拟轻量级全球订单系统而设计的。分别针对使用和未使用智能闪存缓存的情况进行了测试,每次测试使用的 SGA 缓冲区缓存的大小分别为数据库大小的 10%、16% 和 20%。测试结果表明,知道如何高效利用基于闪存的存储的智能数据库可显著提升性能。

目录

简介

当今复杂的业务应用程序通常要存储海量数据、为大量用户提供服务 — 这种趋势带来了更加难以实现的性能要求。为了更快速地响应数据密集型应用程序,系统必须能够迅速访问数据,并且快速将其从存储传输到计算资源以便进行处理。由于一些限制了存储与服务器间吞吐量的 I/O 瓶颈问题,许多数据驱动型应用程序都被过长的延迟和缓慢的响应速度所困扰。增加内存大小、将数据置于外部扇区中以缩短磁盘驱动器行程,诸如此类的传统补救措施虽然成本高昂且高耗能,不过确实能起到一定的作用。然而,由于高速 CPU 以纳秒为单位处理数据,磁盘驱动器以毫秒为单位提供数据,所以问题仍然存在。

闪存技术进入企业后,将有可能提升应用程序性能、减少瓶颈,同时帮助降低数据中心能源消耗。通过在传统磁盘介质与主机处理器之间构造一个固态驱动器 (SSD) 形式的、基于闪存的存储层,当今强大的 CPU 即可缩短等待 I/O 操作完成的空闲时间。SSD 以微秒为单位提供数据,从而可显著提升应用程序性能。然而,问题仍然存在:如何高效、智能地利用闪存技术,而不会因主动管理和持续将数据放在适当的存储层中导致额外的开销。为了应对此挑战,Oracle 推出了数据库智能闪存缓存特性,旨在利用这种新型存储层,在降低复杂性的同时,不会给数据中心的管理员带来过重的负担。

数据库智能闪存缓存

用于 Oracle Solaris 和 Oracle Enterprise Linux 的 Oracle Database 11g 第 2 版均提供了 Oracle 数据库智能闪存缓存。它智能地缓存来自 Oracle 数据库的数据,使用速度更快的基于闪存的存储操作取代缓慢的机械式磁盘 I/O 操作。数据库智能闪存缓存特性利用固态驱动器 (SSD) 或“闪存”技术,成为数据库缓冲区缓存的一种透明扩展。闪存将作为数据库缓冲区缓存的二级缓存。如果进程在缓冲区缓存中找不到所需的块,则将从位于闪存中的二级 SGA 缓冲池进行物理读取。从闪存读取的速度极快,将达到微秒级,而相比之下,对传统硬盘驱动器 (HDD) 进行物理读取操作时则需要数毫秒。

采用闪存存储的数据库智能闪存缓存使管理员能够显著提升 Oracle 数据库的性能,这样可以减少所需的传统磁盘 I/O 数量,成本远低于添加同等数量的 RAM。软件智能将决定使用闪存存储的方法和时机,以及如何以最好的方式将闪存整合到数据库中,将其作为协调化数据缓存战略的一部分,从而为应用程序提供更高的性能。

数据库智能闪存缓存技术允许将频繁访问的数据放在高速闪存存储中,同时将大多数数据保留在极为经济的磁盘存储中。这一切都能自动实现,无需您采取任何操作。Oracle 数据库智能闪存之所以智能,是因为它知道何时应避免尝试缓存永远不会重用或不适合缓存的数据。

对表和索引的随机读取很有可能会有后续读操作,因此通常对其进行缓存,如果未在缓冲区缓存中找到数据,则通过闪存缓存提供数据。通常不会对扫描(即顺序读取表)进行缓存,因为按顺序访问的数据不太可能有相同的后续读操作。一般情况下,写操作会直接将数据写到磁盘上,如果软件认为后续还会再读取这些数据,就会将这些数据暂时放入缓存中。知道不缓存哪些数据对实现缓存性能非常重要。例如,对数据块进行重写、备份或镜像操作时,软件将避免对这些块进行缓存。因为近期不会再读取这些块,所以不必将宝贵的缓存空间用于这些对象或块上。

此外,Oracle 还允许您在数据库表、索引和段级发出指令,确保在必要时利用数据库智能闪存缓存。可以使用一条简单命令将表移入或移出闪存,而不必像使用闪存磁盘的传统存储中那样将表移至不同的表空间、文件或 LUN。只有 Oracle 数据库具备此种功能,能理解系统中进行的所有 I/O 操作的本质。由于了解整个 I/O 体系,因此能够优化对数据库智能闪存缓存的使用,只存储经常访问的数据。

所有这些功能都是自动进行的,无需管理员配置或调优。本文讨论在使用 Oracle Solaris 10 和 Sun Flash Accelerator F20 PCIe 卡的 Oracle Sun SPARC Enterprise M4000 服务器上运行内部设计的 OLTP 基准测试时,利用数据库智能闪存缓存的好处。本文后续各节涵盖了以下主题:

  • iGEN-OLTP 基准测试的详细说明
  • 系统配置详细信息
  • Sun SPARC Enterprise M4000 和 M5000 服务器的功能
  • Sun Flash Accelerator F20 PCIe 卡的特性
  • 基准测试的结果,包括数据库智能闪存缓存的影响

基准测试说明

iGEN-OLTP 1.6 基准测试是一种内部开发的事务处理数据库负载。该负载模拟了一个轻量级的全球订单系统,是使用各种客户负载开发的。它包含高度并发的高强度数据库提交操作。它的表行选择是完全随机的,因此难以“本地化”或优化 SQL 处理。与 TPC-C 基准测试中使用的事务相比,iGEN 基准测试所用的事务需要大量计算工作。

该数据库容纳 125 万名客户,大小约为 50 GB。其中包含六个表:customer、location、industry、product、order 和 activity。每个表都不超过六列,各有一个索引。

应用程序执行五项事务:轻、中等、一般、DSS 和重。每个事务包括各种 SQL 语句:只读选择、联接、平均值、更新和插入。所有测试均使用上述事务的组合来完成。表 1 给出了这些事务的说明和分配组合。

表1. iGEN-OLTP 1.6 事务说明和分配
事务 组合(百分比) 说明
16% 1 次选择更新、1 次选择和 1 次更新
中等 35% 2 次选择更新、1 次选择和 1 次更新
一般 6% 1 次选择更新、1 次通过另一项选择计算平均值
DSS 11% 1 次选择更新、1 次通过联接 3 个表计算总和
30% 1 次选择更新、1 次选择、1 次更新和 1 次插入

可在中间层应用服务器中运行的客户端驱动程序被设计为 Java 多线程负载生成器程序,每个线程都通过 JDBC 程序 API 建立一个到数据库服务器的连接来模拟客户端连接。

要执行负载生成器驱动程序,用户需要提供以下信息:

  • 用户计数或连接计数
  • 升级为允许所有用户建立到数据库的连接的时间,通常是 60 秒
  • 稳定状态运行的时间,所有用户均在此时开始向数据库发布事务
  • 思考时间,即各项事务之间的休眠时间,由每个客户端使用,通常是 100 毫秒

执行多次 iGEN-OLTP 基准测试。在每次测试中,每个负载都在具有固定连接数量的稳定状态下运行五分钟。所测量的核心指标包括每分钟事务数 (TPM)、支持的用户数和平均响应时间。只有在所有事务的平均响应时间均低于 100 毫秒的情况下,一次运行才被视为有效。

系统配置详细信息

基准测试是使用 Oracle Database 11g 第 2 版运行的。数据库服务器和负载生成器的硬件和软件配置如下:

数据库服务器:Sun SPARC Enterprise M4000 服务器

数据库服务器硬件规格如下:

  • CPU:4 个 SPARC64 VI 2.15 GHz 双核处理器,每个内核 2 组导线束
  • 缓存:
    • L1 缓存:每个内核 128 KB(指令)/128 KB(数据)
    • L2 缓存:每个处理器共享 5 MB
  • 内存大小:16384 MB
  • 网络:2 个千兆以太网端口、2 个用于访问 CLI 的 10/100 以太网端口、基于浏览器的管理界面
  • PCI-X 和 PCI Express (PCIe):每个 I/O 托盘 1 个 PCI-X 插槽和 4 个 PCIe 插槽
  • 磁盘:2 个内部 73 GB SAS 磁盘驱动器
  • 一块 Sun Flash Accelerator F20 PCIe 卡,配备 4 个特殊外形规格的板载 SSD,每个有 24 GB 的可寻址容量

使用的软件版本如下:

  • 操作系统:Oracle Solaris 10 09/10
  • 数据库软件:适用于 Solaris 操作系统 (SPARC)(64 位)的 Oracle 11g 第 2 版企业版
  • 数据库配置:参见“附录 A. Oracle 初始化文件 init.ora”

采用了 Oracle 自动存储管理来创建两个具有常规冗余、不带任何文件系统的磁盘组。一个磁盘组用于数据文件,名为“DATA”;另一个磁盘组包含闪存存储,名为“FLASH”。

iGEN-OLTP 负载生成器:Sun Fire X4440 服务器

iGEN-OLTP 负载生成器服务器硬件规格如下:

  • CPU:4 个 AMD Opteron 2.3 GHz 四核处理器
  • L2 缓存:每个处理器内核 512 KB
  • 内存大小:16384 MB
  • 网络:四个 10/100/1000 Base-T 以太网端口和一个用于管理的专用 10/100 Base-T 以太网端口
  • PCI-X 和 PCIe:1 个 PCIe x16 插槽、4 个 PCIe x 8 插槽、1 个 PCIe x 4 插槽
  • 磁盘:八个 2.5 英寸 73 GB SAS 内部热交换磁盘驱动器

使用的操作系统软件版本为 Oracle Solaris 10 05/08。

Sun SPARC Enterprise M4000 和 M5000 中端服务器

Oracle Sun SPARC Enterprise M4000 和 M5000 服务器是高度可靠、易于管理、可垂直伸缩的系统,具有传统大型机的诸多优势,消除了相关的成本或复杂性。这些中端企业服务器的设计具有极度灵活、可伸缩、健壮的特点,提供了大型机级别的可靠性和可用性功能。这些服务器独有平衡、可伸缩的对称多处理 (SMP) 设计,可以利用最新一代的 SPARC64 处理器,通过高速、低延迟的系统互连将其连接到内存和 I/O,从而为应用程序提供卓越的吞吐能力。

Sun SPARC Enterprise M4000 和 M5000 服务器的架构还能减少计划停机和意外停机,包括大型机级别的可靠性、可用性和可服务性 (RAS) 功能,能够避免中断、缩短恢复时间并增加整体系统运行时间。这些服务器可为任务关键型负载提供企业级的服务级别,支持中型到大型数据库、业务处理应用程序(ERP、SCM、CRM、OLTP)、BIDW(数据库、数据集市、DSS)、科学/工程应用程序以及整合/虚拟化项目。

功能概述

Sun SPARC Enterprise M4000 服务器可配置为具有密集、机架优化、六机架单元 (RU) 的系统,最多可配置四个双核 SPARC64 VI 处理器或四个四核 SPARC64 VII 处理器,每个内核有两个同步执行线程(操作系统将每个线程视为一个处理器)和高达 256 GB 的纠错码 (ECC) 内存。

Sun SPARC Enterprise M5000 服务器则在 10 RU 系统中提供了双倍的内核和内存数量。SPARC64 处理器整合了对称多处理 (SMP) 架构,允许任何 CPU 访问系统中任意位置的任何内存板。这些处理器还采用了高级多线程技术,可最大化处理器利用率,从而提升系统性能。

两款服务器均通过高性能的系统底板将处理器和本地内存与 I/O 子系统互连。系统互连或总线的设计实现了最小化延迟,同时提供最大吞吐量,无论负载是计算密集、I/O 密集还是内存密集型都是如此。以利用包交换技术的点到点连接实现这种互联,在 Sun SPARC Enterprise M4000 服务器中可提供 32 GB/秒的峰值带宽,在 SPARC Enterprise M5000 服务器中可提供 64 GB/秒的峰值带宽。

动态域和动态重新配置

Sun SPARC Enterprise M4000 和 M5000 服务器可分别划分为两个和四个独立的动态域。这些动态域是物理上孤立的分区,各自运行 Oracle Solaris 的独立实例。这些服务器具有高级资源控制特性,支持子系统板资源(包括 CPU、内存和 I/O 托盘)的分配,可以将资源全部分配到一个域,也可以逻辑方式划分到多个域中。使用域进行服务器整合以及运行解决方案的不同部分,例如应用服务器、Web 服务器和数据库服务器。一个动态域中的硬件或软件故障不会影响其他域中运行的应用程序。

动态重新配置技术使管理员无需系统脱机即可按照负载变化在域之间转移计算资源,从而使动态域更具价值。该技术允许管理员对硬件资源执行维护、实时升级和物理更改,同时保证服务器继续执行应用程序,无需重新启动系统,从而提高系统可用性。

高级可靠性、可用性和可服务性特性

Sun SPARC Enterprise M4000 和 M5000 服务器专门设计成支持复杂的网络计算解决方案和严格的高可用性需求,包含冗余、热插拔的系统组件、诊断和错误恢复特性以及内置的远程管理特性。

Sun SPARC Enterprise M4000 和 M5000 服务器具有尽早检测和纠正故障并保证边缘组件不会导致重复停机的重要技术。这种先进架构提升了应用程序可用性,并可迅速从多种类型的硬件故障中恢复,通常对用户或系统功能不会产生影响。

以下特性协同工作提高应用程序可用性:

  • 端到端的数据保护可检测并纠正整个系统内的错误,确保全面的数据完整性。这包括对错误标记、指令重试、L1 和 L2 缓存动态降级、最高 128 GB 的纠错码 (ECC) 保护、整体 SRAM 和寄存器保护、针对内存的 ECC 和扩展 ECC 保护以及可选的内存镜像的支持。
  • 大型机级别的故障隔离帮助这些服务器将隔离组件边界内的错误,仅将相关芯片脱机,而非使整个组件脱机。此特性应用于 CPU、内存访问控制器、交换开关 ASIC、系统控制器和 I/O ASIC。例如,可通过自动将线程、内核或整个 CPU 脱机来解决持续存在的 CPU 软件错误。同样,也可主动将内存页面脱机,以响应对特定内存 DIMM 的数据访问的多项纠正。
  • 动态 CPU 资源解除分配提供了处理器故障检测、隔离和恢复。此特性使用动态重新配置将 CPU 资源动态重新分配给操作系统,不会中断正在运行的应用程序。
  • 通过执行定期组件状态检查来确定多种系统设备的状态,检测潜在故障的迹象。触发恢复机制以防止系统和应用程序故障。

Oracle Solaris 10 的可靠性和可用性特性

快速诊断、隔离和恢复硬件和应用程序故障的能力是提高系统可靠性和可用性的关键。除了硬件提供的错误检测和恢复特性之外,Oracle Solaris 10 还引入了 Oracle Solaris Fault Manager 和 Oracle Solaris Service Manager 技术,在自我修复方面取得了长足的进展。

Oracle Solaris Fault Manager 可自动诊断系统中的故障并发起自我修复操作,帮助避免服务中断,从而提升可用性。从传入错误流中观察到可辨别的模式时,Oracle Solaris Fault Manager 诊断引擎会立即生成故障诊断。识别错误之后,Oracle Solaris Fault Manager 会将相关信息提供给知道如何响应特定故障的代理。在故障发生之前,可以在系统以外配置问题组件 — 在发生故障时,这项特性可发起自动恢复和应用程序重启。例如,专门用于响应内存错误的代理可以确定受特定芯片故障影响的内存地址,然后从可用内存池中删除受影响的位置。

Oracle Solaris Service Manager 将随操作系统一起打包的核心服务集转换为可由管理员使用一组统一的管理命令进行操作的头等对象。Oracle Solaris Service Manager 通过管理服务之间的相互依赖性、确保以恰当的顺序启动(或在服务故障后重启)服务来统一服务控制。它与 Oracle Solaris Fault Manager 集成,在响应故障检测时激活。

利用 Oracle Solaris 10,在发生软件故障、重要硬件组件崩溃、软件配置不当等问题时,业务关键应用程序和重要系统服务可继续保持运行。

Sun Flash Accelerator F20 PCIe 卡

Oracle Sun Flash Accelerator F20 PCIe 卡是一种创新的半高 (low-profile) PCIe 卡,支持板载、企业级、基于固态的存储。Sun Flash Accelerator F20 PCIe 卡具有紧凑的 PCIe 外形规格,为使用闪存存储技术的应用程序提供了可观的性能提升 — 随机 4 K 读取可实现每秒高达 100 K 的 I/O 操作 (IOPS),而相比之下,传统磁盘驱动器的 IOPS 约为 330。因此,一块 Sun Flash Accelerator F20 PCIe 卡即可提供与 300 个 15 K RPM 磁盘驱动器相同的 IOPS 数。与此同时,它的能耗和空间占用仅仅是这些磁盘驱动器的一小部分。为 Oracle 机架式服务器添加一块或多块卡即可将任何基于 Sun x86 或 UltraSPARC 处理器的系统转变为高性能存储服务器。

如图 1 所示,Sun Flash Accelerator F20 PCIe 卡组合了 4 个闪存模块 — 即模块化磁盘 (DOM) 单元,每个模块包含 24 GB 的企业级 SLC NAND 闪存和 64 MB 的动态随机存取存储器 (DRAM),因此每块 PCIe 卡支持总计提供 96 GB 的闪存和 256 MB 的 DRAM。此外,每块卡都整合了一个超级电容模块,如果出现突发性断电,该模块可提供足够的能源,支持将 DRAM 内容刷新到持久闪存存储中,这有助于提高数据完整性。

Sun Flash Accelerator

图 1:Sun Flash Accelerator F20 PCIe 卡

Sun Flash Accelerator F20 PCIe 卡亮点

Sun Flash Accelerator F20 PCIe 卡提供了以下优势:

  • 低延迟。 闪存技术可在几微秒内完成 I/O 操作,因此其延迟介于硬盘驱动器 (HDD) 与 DRAM 之间。由于闪存技术不包含任何移动部件,因此可避免传统 HDD 技术所固有的漫长寻道时间和旋转延迟。因此,板载闪存设备之间的数据传输速度明显快于机电磁盘驱动器。一块 Sun Flash Accelerator F20 PCIe 卡可提供高达 100 K 的读取操作 IOPS,相比之下,HDD 仅能提供几百的 IOPS。
  • 企业级可靠性。 Sun 工程师与 NAND 制造商密切合作,对闪存设备做出了某些特殊的可靠性增强。这些企业级的 SLC NAND 设备比 MP3 播放器和数码相机等消费类产品中所用的商业闪存组件更加耐用,额定 MTBF(平均无故障工作时间)超过 200 万小时,高于大多数磁盘驱动器。板载闪存设备由闪存控制器管理。每个控制器均提供了内部 RAID、先进的耗损均衡 (wear leveling)、纠错码 (ECC) 和受损块映射,能提供最高级别的持久性和耐用性。每个闪存模块都包含额外的 8 GB(即 25%)预留内部存储,供控制器用于替换损坏块。此外,一个超级电容单元可在断电的情况下将 DRAM 内容刷新到闪存存储中。由于可自动启用直写模式,因此即便超级电容发生故障,其设计也能保持数据完整性。
  • 简化的管理。Sun Flash Accelerator F20 PCIe 卡将自身作为 HBA 呈现给服务器,其四个 DOM 将被视为 4 个独立的 24 GB 磁盘。管理磁盘驱动器的操作系统命令同样适用于 DOM 存储模块,因此,无需特殊的设备驱动程序,也不必重新编译应用程序。此外,还可按需轻松下载和应用闪存控制器的固件升级。
  • 灵活的配置。Sun Flash Accelerator F20 PCIe 可部署到任何接受基于 PCIe HBA 的合格 Sun 服务器中。
  • 领先的环保责任。固态 DOM 的运行功耗较低(每个 24 GB 的模块约为 2 瓦),比磁盘设备(通常约为每个设备 12 瓦)低得多。正常运行时,卡本身的功耗约为 16.5 瓦。

尽管目前存在其他一些基于闪存的存储解决方案,但 Sun Flash Accelerator F20 PCIe 卡以便捷、紧凑的半高 PCIe 外形规格提供了闪存存储的性能优势。该卡仅占用主板的一个插槽,对于可用磁盘插槽数量有限的现有服务器来说,或者在您不希望使用 SSD 取代现有磁盘驱动器的情况下,紧凑的 PCIe 外形规格的优势尤为明显。由于这是一款 PCIe 卡,因此 I/O 操作不会受到磁盘控制器的制约。

测试结果

我们在 Sun SPARC Enterprise M4000 服务器上运行了多次测试,每次分别使用了大小为数据库大小的 10%、16% 和 20% 的 SGA 缓冲区缓存。每次测试中均使用相同的负载来测试有闪存和无闪存的情况。另外测试了不同的闪存存储大小。只有在平均响应时间低于 100 毫秒的情况下,一次测试才被视为有效。下面给出了各次运行获得的具体结果。

SGA 缓冲区缓存为数据库大小 10% 时的结果

表 2. SGA 缓冲区缓存为数据库大小 10% 时的结果
SGA 缓冲区缓存大小 = 5 GB 无闪存 使用 15 GB 闪存 使用 20 GB 闪存
用户数 400 570 575
最高合格吞吐量:TPM 56659.17 68102.67 73070.83
以毫秒为单位的平均响应时间
(应小于 0.1 秒)
0.070 0.09 0.089

使用 SGA 大小为 15 GB 的数据库智能闪存缓存时的结果

相对于原始无闪存的运行,使用 SGA 为原始 SGA 缓冲区缓存大小 3 倍 (15 GB) 的数据库智能闪存缓存时实现了以下改进:

  • 用户数增加 42.5%
  • TPM 提高 20%

使用 SGA 大小为 20 GB 的数据库智能闪存缓存时的结果

相对于原始无闪存的运行,使用 SGA 为原始 SGA 缓冲区缓存大小 4 倍 (20 GB) 的数据库智能闪存缓存时实现了以下改进:

  • 用户数增加 43.75%
  • TPM 提高 29%

图 2 展示了这些结果。

图 2:5 GB SGA 的测试结果

SGA 缓冲区缓存为数据库大小 16% 时的结果

表 3. SGA 缓冲区缓存为数据库大小 16% 时的结果
SGA 缓冲区缓存大小 = 8 GB 无闪存 使用 16 GB 闪存 使用 20 GB 闪存
用户数 480 575 600
最高合格吞吐量:TPM 64479.50 72437.33 75576.50
以毫秒为单位的平均响应时间(应小于 0.1 秒) 0.079 0.089 0.089

 

使用 SGA 大小为 16 GB 的数据库智能闪存缓存时的结果

相对于原始无闪存的运行,使用 SGA 为原始 SGA 缓冲区缓存大小 2 倍 (16 GB) 的数据库智能闪存缓存时实现了以下改进:

  • 用户数增加 20%
  • TPM 提高 12.3%

使用 SGA 大小为 20 GB 的数据库智能闪存缓存时的结果

相对于原始无闪存的运行,使用 SGA 为原始 SGA 缓冲区缓存大小 2.5 倍 (20 GB) 的数据库智能闪存缓存时实现了以下改进:

  • 用户数增加 25%
  • TPM 提高 17.2%

图 3 展示了这些结果。

图 3

图 3:8 GB SGA 的测试结果

SGA 缓冲区缓存为数据库大小 20% 时的结果

表 4. SGA 缓冲区缓存为数据库大小 20% 时的结果
SGA 缓冲区缓存大小 = 10 GB 无闪存 使用 20 GB 闪存 使用 22 GB 闪存
用户数 575 590 595
最高合格吞吐量:TPM 75175.83 72571.67 75901.00
以毫秒为单位的平均响应时间
(应小于 0.1 秒)
0.083 0.086 0.087

 

使用 SGA 大小为 20 GB 的数据库智能闪存缓存时的结果

相对于原始无闪存的运行,使用 SGA 为原始 SGA 缓冲区缓存大小 2 倍 (20 GB) 的数据库智能闪存缓存时实现了以下改进:

  • 用户数增加 2.6%
  • TPM 降低 3.5%

使用 SGA 大小为 22 GB 的数据库智能闪存缓存时的结果

相对于原始无闪存的运行,使用 SGA 为原始 SGA 缓冲区缓存大小 2.2 倍 (22 GB) 的数据库智能闪存缓存时实现了以下改进:

  • 用户数增加 3.4%
  • TPM 提高 0.9%

在这种情况下,大多数操作都已经缓存,数据库智能闪存缓存大小至少需要是 SGA 大小的四倍,才能体现出差别。

图 4 展示了这些结果。

图 4

图 4:10 GB SGA 的测试结果

总结

所有 OLTP 数据库应用程序的一个关键指标就是在给定时间段内能够执行的事务数。除了每分钟事务数 (TPM) 之外,还必须在可接受的响应时间内为尽可能多的用户提供服务。否则,组织就必须部署大量系统来提供正面的最终用户体验。

Oracle 提供的 iGEN-OLTP 基准测试结果(如上述表格所示)表明,内存中的 SGA 缓冲区缓存大小等于数据库整个大小的 10% 时,系统可扩展为比未采用数据库智能闪存缓存技术的 Sun SPARC Enterprise M4000 服务器支持多出 43% 的用户以及 TPM 提高 29%。这是通过利用更为经济、可靠、更高能效的基于闪存的存储实现的,闪存存储的容量四倍于 SGA 缓冲区大小的容量。这些结果与将内存中的 SGA 缓冲区缓存大小翻倍(达到数据库整个大小的 20%)并且未使用基于闪存的存储时获得的结果一致,但由于后者会带来额外的内存成本和能源要求,因此是一种更为昂贵的解决方案。

Sun SPARC Enterprise M5000 服务器不适于本测试。但与 Sun SPARC Enterprise M4000 服务器相比,这种更大的服务器可提供双倍的内核和内存以及双倍的系统总线带宽。Oracle Solaris 10 和 Oracle 数据库拥有经验证的可伸缩性,因此可以推断,Sun SPARC Enterprise M5000 服务器能达到相同乃至更好的结果,即便不是如此,也能使之支持比上述各项测试中多一倍的用户和 TPM。

正因为如此,Oracle 的数据库智能闪存缓存技术能够提供可伸缩性,满足更大负载和更多用户数量产生的需求,从而提供突破性的应用程序性能优势。只需为现有服务器添加 Sun Accelerator F20 PCIe 卡,无需下载任何特殊驱动程序,也无需重新编译任何应用程序,现有设置即可扩展为支持更多用户、处理更多事务、提升应用程序性能、提高业务生产效率、提高 ROI,同时改善最终用户体验。

通过利用运行 Oracle Solaris 10、配备 Sun Accelerator F20 PCIe 卡的 Sun SPARC Enterprise M4000 和 M5000 服务器,以及了解如何有效利用基于闪存的存储的智能数据库 Oracle Database 11g 第 2 版,您就能够实现性能和业务敏捷性的重大突破。这样的计算环境提供了 Sun SPARC Enterprise M4000 和 M5000 服务器的大型机级别的可靠性、可用性和可服务性特性,以及经过测试和认证具有 200 万小时 MTBF 的 Sun Accelerator F20 PCIe 卡的高度可靠的 Sun 闪存模块,从而支持卓越的服务级别。Oracle 提供的这些创新使企业计算朝向数据中心全面自动化的理想更进一步。

参考资料

有关更多信息,请访问表 5 中列出的 Web 资源。

表 5. 提供更多信息的 Web 资源
Web 资源说明 Web 资源 URL
Sun Flash Accelerator F20 PCIe 卡 www.oracle.com/us/products/servers-storage/storage/disk-storage/043966.html
Sun SPARC Enterprise M4000 服务器 www.oracle.com/us/products/servers-storage/servers/sparc-enterprise/m-series/031646.htm
Sun SPARC Enterprise M5000 服务器 www.oracle.com/us/products/servers-storage/servers/sparc-enterprise/m-series/031732.htm
Oracle Solaris www.oracle.com/solaris

附录:Oracle 初始化文件 init.ora

   ############################################################
   # Copyright (c) 1991, 2001, 2002 by Oracle Corporation
   ############################################################
   _array_update_vector_read_enabled = TRUE
   parallel_max_servers =  64
   parallel_min_servers             = 0
   db_writer_processes = 3
   _imu_pools =0
   _in_memory_undo =FALSE
   _smm_advice_enabled =FALSE
   _undo_autotune =FALSE
   thread = 1
   db_block_checksum                = false
   db_cache_size                    = 5000m  
   db_file_multiblock_read_count    = 128
   db_files                         = 1023
   dml_locks                        = 8000
   global_names                     = FALSE
   java_pool_size                   = 20m
   job_queue_processes              = 4
   log_buffer                       = 4194304
   log_checkpoints_to_alert         = TRUE
   nls_date_format                  = DD-MON-RR
   nls_numeric_characters           = ".,"
   nls_sort                         = binary
   nls_language                     = american
   nls_territory                    = america
   replication_dependency_tracking  = FALSE
   shared_pool_size                 = 1200m
   shared_pool_reserved_size        = 150m
   cursor_space_for_time            = FALSE
   sort_area_size                   = 512000
   sort_area_retained_size          = 512000
   undo_retention = 30
   _in_memory_undo=false
   undo_management = AUTO
   filesystemio_options = setall
   _library_cache_advice = FALSE
   _smm_advice_enabled = FALSE
   db_cache_advice = OFF
   _db_mttr_advice = OFF
   timed_statistics = TRUE
   _trace_files_public=true
   cursor_space_for_time = TRUE
   transactions_per_rollback_segment = 1
   session_cached_cursors = 200
   cursor_sharing = similar
   _db_block_hash_latches = 65536
   ###########################################
   # Smart Flash Cache fields
   ###########################################
   db_flash_cache_file="+FLASH/test"
   db_flash_cache_size=20G
   ###########################################
   # Cache and I/O
   ###########################################
   db_block_size=8192
   ###########################################
   # Cursors and Library Cache
   ###########################################
   open_cursors=3024
   ###########################################
   # Database Identification
   ###########################################
   db_domain=""
   db_name=wcb
   ###########################################
   # File Configuration
   ###########################################
   db_recovery_file_dest=+RECOVERY
   db_recovery_file_dest_size=4070572032
   ###########################################
   # Miscellaneous
   ###########################################
   compatible=11.2.0.0.0
   diagnostic_dest=/u01/app/oracle
   ###########################################
   # Processes and Sessions
   ###########################################
   processes=2200
   ###########################################
   # Security and Auditing
   ###########################################
   audit_file_dest=/u01/app/oracle/admin/wcb-sav/adump
   audit_trail=db
   remote_login_passwordfile=EXCLUSIVE
   ###########################################
   # Shared Server
   ###########################################
   dispatchers="(PROTOCOL=TCP) (SERVICE=wcbXDB)
       
修订版 1.0,2011 年 4 月 15 日