监看硬盘活动
Microsoft? SQL Server? 使用 Microsoft Windows NT? 4.0 或 Windows? 2000 I/O 呼叫来执行磁碟读/写动作。SQL Server 会管理何时与如何执行磁碟 I/O,但 Windows 作业系统会执行基本的 I/O 作业。I/O 子系统包含了系统汇流排 (System Bus)、磁碟控制卡 (Disk Control Card)、磁碟 (Disk)、磁带机 (Tape Drive)、光碟机 (CD-ROM Drive) 和许多其他的 I/O 装置。磁碟 I/O 经常是造成系统瓶颈的原因。监看磁碟 I/O 与侦测额外的分页方式
监看下列两种计数器,以决定磁碟活动:
* PhysicalDisk:% Disk Time
* PhysicalDisk:Avg.Disk Queue Length
在‘系统监视器’(Windows NT 4.0 中的‘效能监视器’) 中,PhysicalDisk:% Disk Time计数器可监看磁碟忙碌地处理读取/写入活动的时间百分比。若 PhysicalDisk:% Disk Time计数器很高 (超过 90 %),请检查 Physical Disk:Current Disk Queue Length 计数器来检视有多少系统要求 (System Request) 正在等候磁碟存取。等候的 I/O 要求数不应持续超过实体磁碟所包含读写头数的 1.5 到 2 倍。大多数的磁碟都有一个读写头,而通常磁碟阵列 (RAID) 装置则有多个读写头。硬体 RAID 装置在‘系统监视器’中将显示成一台实体磁碟;而透过软体建立的 RAID 装置则显示成多重执行个体 (Instance)。
使用Current Disk Queue Length 和 % Disk Time 计数器的数值来侦测磁碟子系统内的瓶颈 (Bottleneck)。如果 Current Disk Queue Length 与 % Disk Time 计数器值一直很高,请考虑:
* 使用较快的磁碟机。
* 将一些档案移到其他磁碟或伺服器。
* 如果使用 RAID 的话,为 RAID 阵列新增其他磁碟机。
若您正在使用 RAID 装置,% Disk Time 计数器可能显示大于 100 百分比的数值。若是如此,请使用 PhysicalDisk:Avg.Disk Queue Length 计数器来决定平均有多少系统要求在等候磁碟存取。
I/O 系结 (Bind) 的应用程式和系统将让磁碟经常处于作用中状态。
监看 Memory:Page Faults/sec 计数器可确认磁碟活动并非分页 (Page) 所造成。在 Windows NT 4.0 或 Windows 2000 中,造成分页的原因是:
* 处理序 (Process) 设定使用太多记忆体。
* 档案系统 (File System) 活动。
若同一台硬碟中拥有多个逻辑资料分割 (Logical Partition),请使用 Logical Disk 计数器,而非 Physical Disk 计数器。检视逻辑磁碟计数器将协助您决定哪个档案经常遭到存取。当您找到读取/写入活动率偏高的磁碟时,请检视特定的读取和写入计数器 (例如,Logical Disk:Disk Write Bytes/sec) 造成逻辑磁区 (Volume) 载入的磁碟活动型态。
隔离 SQL Server 所建立的磁碟活动
若要决定 SQL Server 元件所产生的 I/O 数量,请检查下列的效能区域:
* 将分页写入磁碟
* 自磁碟读取分页
SQL Server 所执行的分页读取和写入数可使用 SQL Server:Buffer Manager Page Reads/sec 和 Page Writes/sec 计数器。若这些数值开始接近硬体 I/O 子系统的容量,您需试着减少此数值,作法包括调整应用程式或资料库来减少其 I/O 作业 (例如索引范围 (Index Coverage)、较佳的索引或正规化 (Normalization))、增加硬体的 I/O 容量,或是加入记忆体。 我得仔细研究一下
页:
[1]
