新博客http://www.cnblogs.com/zhjh256 欢迎访问
分类: Oracle
2007-12-26 18:03:06
考虑I/O性能问题时,通常使用以下等式:
response time = waiting time + service time
磁盘负载平衡的作用
在磁盘负载平衡中,通过尽可能的扩展I/O负载到所有的硬件组件上最小化等待时间。但是需要注意的是,一个磁盘可能非常繁忙,但是只有一个进程在执行大量的顺序I/O,而亮一个磁盘则很轻松但有大量的进程在执行随机I/O,这种情况下的不平衡负载是完全满足的,因为不存在等待时间。
磁盘负载平衡的目标是通过清除等待时间提高I/O响应时间。在使用异步顺序I/O的情况下,可能会出现一些等待时间,但是这仅仅是表象,因为一个进程不会等待另一个进程。不要尝试平衡一个负载很重的顺序I/O和一个很轻的随机I/O负载。因为不存在实际的等待时间。
不过,通常可以恰当的调整一个负载很重的随机I/O和一个负载很轻的顺序I/O。在这种情况下,将会减少随机I/O的等待时间同时提高逻辑I/O的服务时间,并且减少物理顺序I/O。
相关的统计
最明显的统计是等待时间自身。但是os统计上的等待时间是不可靠的,主要是因为这些统计是基于设备驱动器级别的,以及不包括os级别如lvm/fs的等待时间。
Oracle在数据文件级别提供的I/O统计存储在V$FILESTAT中,OS在每个磁盘级别提供统计;对于裸设备,这两种统计都是有用的,因为很少有数据文件对磁盘是1:1的,而文件系统,OS级别的数据通常没有什么用处。
简单的统计就是调整使得每个磁盘的负载尽可能相同。
其他的考虑事项
实际中磁盘的平衡通常相当的复杂,如一个数据文件a中包含了一个主要的应用程序表,而在数据文件c中包含其主键索引,那么即使调整了a磁盘可能导致c磁盘性能的严重下降。I/O分配的原则见Planning Tablespaces。