Windows性能计数器(用于监控系统和sql server)
进入:单击开始,单击运行,键入 perfmon,然后按 ENTER 键或单击确定,进入性能控制台。这里包括系统监视器(系统计时器实时监控)、性能日志和警报(计数器日志、跟踪日志、警报)。
1、保存为二进制文
可通过命令 relog 将二进制文件转化为其他格式的文件。具体 relog /?查看。
2、保存为带间隔符的文本文件
这个可直接查看,也可导入到数据库。导入脚本如下:
select * into Perflog from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;HDR=NO;DATABASE=c:/perflogs/',counters#CSV)
3、日志直接保存到数据库中
创建数据源名称 (DSN)
1. 单击开始,指向设置,单击控制面板,然后双击管理工具。
2. 双击数据源 (ODBC),单击系统 DSN 选项卡,然后单击添加。
3. 双击SQLServer,为该 DSN 键入名称。
4. 单击运行数据库所在的SQLServer 的计算机,然后单击下一步。
5. 单击“使用网络登录 ID 的 Windows NT 身份验证”,然后单击下一步。
6. 更改默认的数据库为你保存日志的数据库。
7. 单击确定接受默认设置,然后单击完成。
8. 单击测试数据源,成功。
日志配置
1. 选择“性能日志和警报 – 计数器日志”,右键单击“计数器日志”,然后单击“新建日志设置”。
2. 为该日志键入一个名称,然后单击确定。
3. 单击添加对象添加要记录的对象,然后单击添加。
4. 输入要监视的计数器,然后单击关闭。
5. 单击日志文件选项卡,在“日志文件类型”列表中单击SQL数据库,然后单击配置。
6. 在系统 DSN 框中,单击要连接到的 DSN。如果要重命名该日志组,则在日志组名称框中键入新名称。
7. 单击确定,然后单击应用。
此时启动新建的日志,会提示无法启动,需要进行如下设置:日志属性常规选项卡中,运行方式需要进行设定,设置上用户名、密码。(该用户必须同时属于用户组“Performance Log Users”和“SQLServerMSSQLUser$主机名$MSSQLSERVER”, 或者直接属于administrators组)
以下为监控项示例:(sqlserver监控项的解释,可参见“使用 SQL Server 对象”: http://technet.microsoft.com/zh-cn/library/ms190382(SQL.90).aspx
Monitor_CPU_to_DB CPU使用率监控, 写入数据库 每30秒
CPU使用率Processor % Processor Time
Monitor_Others_to_DB 其它监控,写入数据库 每5分钟
虚拟内存: Paging File : % user age
网卡等待, SQLServer: Wait statistic: network io : 平均等待时间
IO等待 SQLServer: Wait statistic: Page IO latch waits : 平均等待时间
磁盘: PhysiscalDisk % Disk Time, Avg. Disk Bytes/Transfer,
错误数: SQLServer: SQL error: _Total
缓存命中率: SQLServer: SQL Server Buffer Manager : Buffer Cache Hit Ratio
每秒收到的Transact-SQL命令批数,每秒编译数,每秒重编译数: SQL Server:SQL Statistics: Batch Requests/sec , SQL Compilations/sec, SQL Re-Compilations/sec
性能计数器: |
|
|
Performance Object |
Counter |
Description |
Processor |
%processor Time |
指处理器执行非闲置线程时间的百分比,测量处理器繁忙的时间 这个计数器设计成用来作为处理器活动的主要指示器,可以选择单个CPU实例,也可以选择Total |
Interrupts/sec |
处理器正在处理的来自应用程序或硬件的中断的数量 |
|
PhysicalDisk |
% Disk Time |
计数器监视磁盘忙于读/写活动所用时间的百分比.在系统监视器中,PhysicalDisk: % Disk Time 计数器监视磁盘忙于读/写活动所用时间的百分比。如果 PhysicalDisk: % Disk Time 计数器的值较高(大于 90%),请检查 PhysicalDisk: Current Disk Queue Length 计数器了解等待进行磁盘访问的系统请求数量。等待 I/O 请求的数量应该保持在不超过组成物理磁盘的轴数的 1.5 到 2 倍。大多数磁盘只有一个轴,但独立磁盘冗余阵列 (RAID) 设备通常有多个轴。硬件 RAID 设备在系统监视器中显示为一个物理磁盘。通过软件创建的多个 RAID 设备在系统监视器中显示为多个实例。 可以使用 Current Disk Queue Length 和 % Disk Time 计数器的值检测磁盘子系统中的瓶颈。如果 Current Disk Queue Length 和 % Disk Time 计数器的值一直很高,则考虑下列事项: 1.使用速度更快的磁盘驱动器。 2.将某些文件移至其他磁盘或服务器。 3.如果正在使用一个 RAID 阵列,则在该阵列中添加磁盘。 计数器监视磁盘忙于读/写活动所用时间的百分比.在系统监视器中,PhysicalDisk: % Disk Time 计数器监视磁盘忙于读/写活动所用时间的百分比。 |
Avg.Disk Queue Length |
指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数 |
|
Current Disk Queue Length |
指示被挂起的磁盘 I/O 请求的数量。如果这个值始终高于 2,就表示产生了拥塞 |
|
Avg.Disk Bytes/Transfer |
写入或读取操作时向磁盘传送或从磁盘传出字节的平均数 |
|
Disk Bytes/sec |
在读写操作中,从磁盘传出或传送到磁盘的字节速率 |
|
Memory |
Pages/sec |
被请求页面的数量. |
Available Bytes |
可用物理内存的数量 |
|
Committed Bytes |
已分配给物理 RAM 用于存储或分配给页面文件的虚拟内存 |
|
Pool Nonpaged Bytes |
未分页池系统内存区域中的 RAM 数量 |
|
Page Faults/sec |
是每秒钟出错页面的平均数量 |
|
Network Interface |
Bytes Received/sec |
使用本网络适配器接收的字节数 |
Bytes Sent/sec |
使用本网络适配器发送的字节数 |
|
Bytes Total/sec |
使用本网络适配器发送和接收的字节数 |
|
Server |
Bytes Received/sec |
把此计数器与网络适配器的总带宽相比较,确定网络连接是否产生瓶颈 |
SQL Server Access Methods |
Page Splits/sec |
每秒由于索引页溢出而发生的页拆分数.如果发现页分裂的次数很多,考虑提高Index的填充因子.数据页将会有更多的空间保留用于做数据的填充,从而减少页拆分 |
Pages Allocated/sec |
在此 SQL Server 实例的所有数据库中每秒分配的页数。这些页包括从混合区和统一区中分配的页 |
|
Full Scans/sec |
每秒不受限制的完全扫描数. 这些扫描可以是基表扫描,也可以是全文索引扫描 |
|
SQL Server: SQL Statistics |
Batch Requests/Sec |
每秒收到的 Transact-SQL 命令批数。这一统计信息受所有约束(如 I/O、用户数、高速缓存大小、请求的复杂程度等)影响。 |
SQL Compilations/Sec |
每秒的编译数。表示编译代码路径被进入的次数。包括 SQL Server 中语句级重新编译导致的编译。当 SQL Server 用户活动稳定后, |
|
Re-Compilations/Sec |
每秒语句重新编译的次数。计算语句重新编译被触发的次数。一般来说,这个数最好较小,存储过程在理想情况下应该只编译一次, |
|
SQL Server: Databases |
Log Flushes/sec |
每秒日志刷新数目 |
Active Transactions |
数据库的活动事务数 |
|
Backup/Restore Throughput/sec |
每秒数据库的备份和还原操作的读取/写入吞吐量。例如,并行使用多个备份设备或使用更快的设备时,可以测量数据库备份操作性能的变化情况。 |
|
SQL Server General Statistics |
User Connections |
系统中活动的SQL连接数. 该计数器的信息可以用于找出系统的最大并发用户数 |
Temp Tables Creation Rate |
每秒创建的临时表/表变量的数目 |
|
Temp Tables For Destruction |
等待被清除系统线程破坏的临时表/表变量数 |
|
SQL Server Locks |
Number of Deadlocks/sec |
指每秒导致死锁的锁请求数. 死锁对于应用程序的可伸缩性非常有害, 并且会导致恶劣的用户体验. 该计数器必须为0 |
Average Wait Time (ms) |
每个导致等待的锁请求的平均等待时间 |
|
Lock requests/sec |
锁管理器每秒请求的新锁和锁转换数. 通过优化查询来减少读取次数, 可以减少该计数器的值 |
|
SQL Server:Memory Manager |
Total Server Memory (KB) |
从缓冲池提交的内存(这不是 SQL Server 使用的总内存) |
Target Server Memory (KB) |
服务器能够使用的动态内存总量 |
|
SQL Cache Memory(KB) |
服务器正在用于动态 SQL 高速缓存的动态内存总数 |
|
Memory Grants Pending |
指每秒等待工作空间内存授权的进程数. 该计数器应该尽可能接近0,否则预示可能存在着内存瓶颈 |
|
SQL Server Buffer Manager |
Buffer Cache Hit Ratio |
缓存命中率,在缓冲区高速缓存中找到而不需要从磁盘中读取(物理I/O)的页的百分比. 如果该值较低则可能存在内存不足或不正确的索引 |
Page Reads/sec |
每秒发出的物理数据库页读取数。此统计信息显示的是所有数据库间的物理页读取总数。由于物理 I/O 的开销大,可以通过使用更大的数据缓存、智能索引、更有效的查询或更改数据库设计等方法,将开销降到最低 |
|
Page Writes/sec |
每秒执行的物理数据库页写入数 |
|
Page Life Expectancy |
页若不被引用将在缓冲池中停留的秒数 |
|
Lazy Writes/Sec |
每秒被缓冲区管理器的惰性编写器写入的缓冲区数 |
|
Checkpoint Pages/Sec |
由要求刷新所有脏页的检查点或其他操作每秒刷新到磁盘的页数 |