<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2.2.3计数器分析

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
从上面的内存性能数据中可以看到,该服务器在凌晨230前服务器的内存分页一直是0,而在230后迅速提升到300以上,远远大于了内存性能要求的20。这说明此时数据库服务器存在大量分页。为了查清原因,可以进行下一步的内存分析或去服务器的计划任务中去查找,看看服务器此时是否在进行一项耗费内存较大的任务。

 

2.3内存泄露分析

2.3.1计数器

Memory\Available Bytes

Memory\ Committed Bytes

2.3.2说明及参考值

如果您怀疑有内存泄露,请监视 Memory\Available Bytes Memory\ Committed Bytes,以观察内存行为,并监视你认为可能在泄露内存的进程的 Process\ Private BytesProcess\ Working Set Process\ Handle Count。如果您怀疑是内核模式进程导致了泄露,则还应该监视 Memory\ Pool Nonpaged BytesMemory\ Pool Nonpaged Allocs Process(process_name)\ Pool Nonpaged Bytes

Process\ Private Bytes
进程无法与其他进程共享的字节数量。该计数器的值较大时,有可能是内存泄露的信号.

 

2.4网络性能分析

2.4.1计数器

Network Interface\Bytes Total/sec

2.4.2说明及参考值

Bytes Total/sec 是在每个网络适配器上发送和接收字节的速率,包括帧字符在内。Network Interface\\Bytes Received/sec Network Interface\\Bytes Received/sec Network Interface\\Bytes Sent/sec 的总和。

 

注:
  如果服务器上有多片网卡,请在设置计数时在“从列表选择范例”中选择数据库服务器业务所用的那片网卡,图示如下:
在其它的书籍(SQL server 2005 数据库服务器架构设计)中所提到的一个解决多网络的计数器server\ Bytes Total/sec (说明:服务器从网络上发送和接收的字节数。该值显示了服务器大体上有多忙。) ,我在很多数据库服务器都设定过,而采集到的数据多数为0.因此不建议使用这个计数器。
该参考值小于该网络总的总流量的75%

2.4.3 计数器分析

时间

\Network Interface(Broadcom BCM5708C NetXtreme II GigE [NDIS VBD Client])\Bytes Total/sec

 23:58:15.922

1720187.174

 23:58:30.922

1725767.26

 23:58:45.922

1613940.115

 23:59:00.922

1308145.163

 23:59:15.923

1779936.383

 23:59:30.923

1675714.244

 23:59:45.923

1680353.645

服务器所采集流量的单位为Bytes/sec,而网卡上流量的单位是Mbps.因此需要进行单位换算:
如上例:1720187*8(换算成bit/(1024*1024)(换算成M)=13.2Mbps.如果网络总的流量为100Mbps的话,则网络利用率为13.2%,远远小于75%.处于很好的网络状态中。

 

2.5 磁盘性能分析

2.5.1 计数器

Physical Disk\ % Disk Time
Physical Disk\Avg. Disk Queue Length
Physical Disk\Disk Write Bytes/sec
Physical Disk\Disk Read Bytes/sec

2.5.2说明及参考值

% Disk Time 指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。参考值:建议平均低于50%.
Avg. Disk Queue Length 指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。参考值:平均每磁盘 应该低于2,如果是4块磁盘组成的阵列,此值应该低于8.
Disk Write Bytes/sec 指在写入操作时传送到磁盘上的字节速度。
Disk Read Bytes/sec 指在读取操作时从磁盘上传送字节的速率。

 

2.5.3 计数器分析

如果页面读取操作速率很低,同时 % Disk Time Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。
时间

\Avg. Disk Queue Length

\% Disk Time

\Disk Read Bytes/sec

Disk Write Bytes/sec

 20:00:23.453

41.20

4071

1677292

17598357

 20:00:38.453

1.02

90

1559865

1809

 20:00:53.454

0.88

76

1430968

1809

 20:01:08.454

0.82

69

1386181

171

 20:01:23.455

44.52

4403

1348499

18174051

 20:01:38.455

2.44

231

1269290

171

 20:01:53.456

0.80

67

1171548

171

 20:02:08.456

0.83

70

1198299

1263

 20:02:23.457

46.77

4628

1084696

18142888

 

 

 

 

 

 05:41:02.363

0

11

142551

171

 05:41:17.360

0

9

131627

171

 05:41:32.358

0

9

137089

171

 05:41:47.356

0

7

120158

171

 05:42:02.353

0

8

117973

171

 05:42:17.351

0

14

125073

171

 05:42:32.349

0

8

111419

171

 05:42:47.346

26

2548

122343

6429724

从上表(上表为数据库库文件所在磁盘的IO数据)可以看MS SQL 2005运行一段时间(不管繁忙还是空闲)后,需要将日志文件和内存中的数据集中在一起来写入到数据库的硬盘中,此时硬盘IO会出现短时间的瓶颈。如果要求数据库IO还要求更快的话,该数据库繁忙时,磁盘还是存在一定的性能瓶颈。