利用固态盘阵列提升数据库性能(二)

四、确定 IO 等待时间
 
    查看操作系统的性能是确定 IO 等待时间最好的方式。用来评估操作系统性能的工具因操作系统而异。下面给出了一些可用的工具。
 
Windows NT/2000/2003/XP
 
对于 Windows 操作系统的系统性能分析的最佳工具是性能监视器 。不幸的是,性能监视器不会提供实际的 IO 等待时间的统计数字,但它包括处理器的实时性能水平。 处理器:%处理器时间 计量由处理器完成的实际工作。如果一个系统受到了大量交易数据的沉重打击,但 %处理器时间 远在 100 %之下,很有可能是受制于服务器的 IO 等待时间。装有固态盘的系统通常具有较高的 %处理器时间 的数字。
作为例子,下面两个 Windows 性能监视器屏幕截图供参考。
3: 处理器的硬盘写性能
 利用固态盘阵列提升数据库性能(二)_第1张图片
3显示了一个安装了IOMeter Server 2000系统执行100%的随机写入硬盘驱动器的处理器:%处理器时间性能。在这里可以看到,处理器的利用率平均约1.8%。不过,如果你在这个系统上打算尝试运行其他应用程序,处理器的利用率将仅略有增加,因为该处理器在等待硬盘驱动器的IO响应。这个例子的IOMeter显示平均每秒有150次磁盘驱动器写入(150 IOPS)。
 
4: 处理器的 RamSan SSD 写性能
利用固态盘阵列提升数据库性能(二)
 
4 显示了在完全相同的系统和 IOMeter 数据访问情况下与 TMS RamSan 系统的比较。 在这个例子中,处理器的平均利用率为 68 %。 IOMeter 显示每秒 37,000 写入 RamSan 37,000 IOPS )。 SSD 使 CPU 的使用率增加了 3677 %,并让服务器与光纤通道主机适配器性能达到饱和。且由于 RamSan 性能比最好的 RAID 还高,只发挥了 RamSan 能力的一小部分,如果挂接几个类似的服务器也能获得类似的性能结果。
在关注处理器性能指标的同时, TMS 建议查看一下物理硬盘的“平价硬盘队列长度”和每秒硬盘字节数,以确定硬盘子系统的瓶颈。如果这些值一直很高,可以考虑将文件迁移到固态盘上。磁盘队列长度大于 3 表明存在问题。
   
UNIX
 
UNIX 操作系统,下列命令很有用: top iostat sar。 不同的命令会有不同的输出。
Solaris 系统上执行 Top 命令时,会有如下格式的结果:
 
利用固态盘阵列提升数据库性能(二)

关键是这个命令提供了 iowait” 信息。特别要注意的是, top 提供了性能快照。
也可以看看 vmstat 命令。它会告诉你你的系统是如何频繁分页到虚拟内存(磁盘)上的。如果分页频繁,可以考虑添加系统内存或使用固态盘分页。另一种方式是分页到磁盘,那样硬盘驱动器会引入系统性能瓶颈。
 
Oracle
 
8.1.7 .2 版本开始每一个版本的 Oracle 都带有 Statspack 工具用于数据库性能监测。 在版本 10g 中, Oracle 为了因应日益增加的复杂性和管理与优化大型数据库的高额成本,引入了自动负载信息库 AWR Automatic Workload Repository 与自动数据库诊断监控器 ADDM Automatic Database Diagnostic Monitor 。虽然 AWR / ADDM 是对 Statspack 一个大的提升,但即使是最好的数据库调优也无法修复缓慢的磁盘子系统。在繁忙时段的 Statspack 报告或 AWR 报告应,可以提供 IO 相关的统计数字,以帮助确定哪些文件可受益于迁移到固态盘上。
 
Oracle 使用 1-10 个数据库或脏缓冲区写进程将更改的数据和 rollback/undo 数据写入磁盘,同时日志写进程将 redo 日志数据、归档日志进程将归档日志数据写入第二个存储位置。然而, Oracle 的每个用户进程都从磁盘进行自己的读取,在大型 Oracle 系统中,这意味着成百上千的并发磁盘读请求。系统管理员对这种对存储系统的大量并发读访问需求通常了解不足,从而不恰当地配置磁盘 RAID 系统,以致发生争议。
 
关于 Oracle IO 问题,最新版本增加了对存储的要求。过去的 Oracle 包括一个数据库、一些 redo 日志、归档日志和备份。现在,随着 Oracle flashback 功能的出现,它可以极大地提高数据库的 DBA 或开发人员应对变化的能力,数据被存储在多个地方。从 rollback 段更改为新的 redo 表空间很有好处,但在生产系统中有时也有超过 800GB redo 表空间,这时快速的 IO 能力对获得良好的系统性能是至关重要的。
 
如同本文的开头提到的那样,改善系统性能的方法之一是增加更多的系统。 Oracle 新的集群数据库 RAC 是添加更多系统的其中一个方法,以满足这些庞大的数据库系统的一些要求。这个架构关键的一点是,这些单个电脑都可以增加更多的计算机能力,但它们却都使用相同的共享磁盘系统。
如果数据库受到 IO 的限制, 5 个时间事件 是首要查看的地方。图 5 显示了 Statspack 报告前 5 名事件的一个示例。
5: Oracle Statspack 报告示例
 
 
利用固态盘阵列提升数据库性能(三)
5 个时间事件 Statspack 报告涵盖的一段时间内提供一个数据库活动快照。如果这些顶尖的事件表明,该数据库的大部分时间都花在处理磁盘 IO 上,那么固态盘可以提供一个巨大的性能改进。下图 6 提供了表明固态盘应当纳入考虑范围的通常事件以及可以受益于固态盘的数据库组件的部分列表。
6: Statspack 事件
 

 利用固态盘阵列提升数据库性能(三)

利用固态盘阵列提升数据库性能(三)

你可能感兴趣的:(oracle,职场,休闲,数据库性能,TMS,RamSan,固态盘阵列)