|
知识路径: > 测试技术的分类 > 应用负载压力测试 > 负载压力测试实施 > 结果评估与测试报告 > 资源占用性能评估 >
|
相关知识点:3个
|
|
|
|
通过《负载压力测试指标》章节的讨论,可以将数据库资源占用监控指标概括为:
|
|
|
|
|
|
. 共享内存中物理日志和逻辑日志的缓冲区的使用率。
|
|
|
. 磁盘的数据块使用情况以及被频繁读写的热点区域。
|
|
|
|
|
|
|
下面以SQL Server数据库性能计数器为例来分析。
|
|
|
. Access Methods:用于监视数据库逻辑页访问方法。
|
|
|
. Full Scans/sec:每秒钟不受限的完全扫描数。可以是基本表扫描或全索引扫描。如果这个计数器显示的值比1或2高,应该分析查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。
|
|
|
. Page splits/sec:由于数据更新操作引起的每秒页分割的数量。
|
|
|
. Buffer Manager:监视SQL Server如何使用内存存储数据页、内部数据结构和过程高速缓存。计数器在SQL Server从磁盘读取数据库页和将数据库页写入磁盘时监视物理I/O。监视SQL Server所使用的内存和计数器,有助于确定是否由于缺少可用物理内存存储高速缓存中经常访问的数据,而导致瓶颈存在。如果是这样,SQL Server必须从磁盘检索数据,以及考虑是否可通过添加更多内存,或使更多内存可用于数据高速缓存或SQL Server内部结构来提高查询性能。
|
|
|
. Disk I/O:SQL Server从磁盘读取数据的频率。与其他操作相比,例如内存访问,物理I/O会耗费大量时间。尽可能减少物理I/O可以提高查询性能。
|
|
|
. Page Reads/sec:每秒钟发出的物理数据库页读取数。这一统计信息显示的是在所有数据库间的物理页读取总数。由于物理I/O的开销大,可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,使开销减到最小。
|
|
|
. Page Writes/sec:每秒执行的物理数据库写的页数。
|
|
|
. Buffer Cache Hit Ratio:在“缓冲池”(Buffer Cache/Buffer Pool)中没有被读过的页占整个缓冲池中所有页的比率。可在高速缓存中找到,而不需要从磁盘中读取的页的百分比。这一比率是高速缓存命中总数除以自SQL Server实例启动后对高速缓存的查找总数。经过很长时间后,这一比率的变化很小。由于从高速缓存中读数据比从磁盘中读数据的开销要小得多,一般希望这一数值高一些。通常,可以通过增加SQL Server可用的内存数量来提高高速缓存命中率。计数器值依应用程序而定,但比率最好为90%或更高。增加内存直到这一数值持续高于90%,表示90%以上的数据请求可以从数据缓冲区中获得所需数据。
|
|
|
. Lazy Writes/sec:惰性写进程每秒写的缓冲区的数量。其值最好为0。
|
|
|
. Cache Manager:对象提供计数器,用于监视SQL Server如何使用内存存储对象,如存储过程、特殊和准备好的Transact-SQL语句以及触发器。
|
|
|
. Cache Hit Ratio:Cache可以包括Log Cache, Buffer Cache以及Procedure Cache,是一个总体的比率,是高速缓存命中次数和查找次数的比率之和。其对查看SQL Server高速缓存对于系统性能提升如何有效,是一个非常好的计数器。如果这个值持续低于80%,就需要增加更多的内存。
|
|
|
. Latches:用于监视称为“闩锁”的内部SQL Server资源锁。监视闩锁以明确用户活动和资源使用情况,有助于查明性能瓶颈。
|
|
|
. Average Latch Wait Time(ms):一个SQL Server线程必须等待一个闩的平均时间,以毫秒为单位。如果这个值很高,系统可能正经历严重的竞争问题。
|
|
|
. Latch Waits/sec:在闩上每秒的等待数量。如果这个值很高,表明系统正经历严重的竞争问题。
|
|
|
. Locks:提供有关个别资源类型上的SQL Server锁的信息。锁加在SQL Server资源上(如在一个事务中进行的行读取或修改),以防止多个事务并发使用资源。例如,如果一个排它锁被一个事务加在某一表的某一行上,在这个锁被释放前,其他事务都不可以修改这一行。应尽可能少使用锁,可提高并发性,从而改善性能。可以同时监视Locks对象的多个实例,每个实例代表一个资源类型上的一个锁。
|
|
|
. Number of Deadlocks/sec:导致死锁的锁请求的数量。
|
|
|
. Average Wait Time(ms):线程等待某种类型的锁的平均等待时间。
|
|
|
. Lock Requests/sec:每秒钟某种类型的锁请求的数量。
|
|
|
. Memory manager:用于监视总体的服务器内存使用情况,以估计用户活动和资源使用,有助于查明性能瓶颈。监视SQL Server实例所使用的内存,有助于确定是否由于缺少可用物理内存存储高速缓存中经常访问的数据而导致瓶颈存在。如果是这样,SQL Server必须从磁盘检索数据,以及考虑是否可以通过添加更多内存,或使更多内存可用于数据高速缓存或SQL Server内部结构,来提高查询性能。
|
|
|
. Lock blocks:服务器上锁定块的数量,锁是加在页、行或者表这样的资源上。通常不希望看到此值增长。
|
|
|
. Total Server Memory:SQL Server服务器当前正在使用的动态内存总量。
|
|
|