2.2.3计数器分析

从上面的内存性能数据中可以看到,该服务器在凌晨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
 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还要求更快的话,该数据库繁忙时,磁盘还是存在一定的性能瓶颈。