天天看点

数据库优化(一)性能指标(服务器硬件)

数据库优化(一)性能指标(服务器硬件)

          • 1.工具 Perfmon
          • 2.硬件一 CPU
            • ①System\%Total Processor Time
            • ②Processor\%User Time
            • ③Processor\%DPC Time
            • ④System\Processor Queue Length
          • 3.硬件二 内存
            • ①Memory\Available Mbytes
            • ②Memory\Pages/sec 、 Pages Read/sec 和Page Faults/sec
          • 4.硬件三 磁盘I/O
            • ①Physical Disk\Disk Time、Processor\Privieged Time
            • ②Physical Disk\Transfers/sec
          • 5.硬件四 网络
            • ①Network Interface\Byte Total/sec

我们在进行数据库调优之前,除了知道通过哪些操作去调整,首先要了解的是都有哪些个数据库调优相关的性能指标。了解之后,我们才能 明现状–有哪些地方是可以进行优化的地方,定目标–可以优化到什么样的程度,后我们才能针对性进行操作。

本篇文章主要包括 服务器硬件指标 + 数据库资源情况指标,两个部分。

由于服务器硬件指标内容超出预设,另作一篇文章进行介绍。

1.工具 Perfmon

以下性能指标我们均在Windows自带的Perfmon(性能监视器)进行查看。

打开方式:

①在搜索框输入“perfmon”即可。

数据库优化(一)性能指标(服务器硬件)

②点击“性能监视器” → 点击 “+”,即可添加监控指标

数据库优化(一)性能指标(服务器硬件)

③在相应的类别下选择要查看的计数器,添加–确认即可

数据库优化(一)性能指标(服务器硬件)

④对于监视器图示的样式,可以双击对应的计数器–修改样式后保存即可

数据库优化(一)性能指标(服务器硬件)
2.硬件一 CPU

我们知道 性能 = 1/ 响应时间,

查看指标:

①System%Total Processor Time

定义:

Total Processor Time,系统中所有处理器都处于繁忙状态的时间百分比,体现的是服务器整体处理利用率。所以如果是多处理器系统,该数值体现的是所有CPU的平均利用率。

参考值:

如果服务器专用于sql server 可接受的最大上限是80% -85 %。

如果该值持续超过90%,则说明整个系统面临着处理器方面的瓶颈,需要通过增加处理器来提高性能。

②Processor%User Time

定义:

User Time,系统的非核心消耗的CPU时间,在用户状态模式下(即非特权模式)的操作所花的时间百分比。

参考值:

处理:

如果该值较大,可以考虑是否通过算法优化等方法降低这个值。

如果该服务器是数据库服务器,导致此值较大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。表示耗费CPU的数据库操作,如排序,执行aggregate functions等。如果该值很高,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。

③Processor%DPC Time

定义:

DPC Time,处理器在网络处理上消耗的时间,该值越低越好。

参考值:

在多处理器系统中,如果这个值大于50%并且Processor:% Processor Time非常高,加入一个网卡可能会提高性能。

④System\Processor Queue Length

定义:

Processor Time,处理器用来执行非闲置线程时间的百分比。 线程在等待分配CPU资源所排队列的长度,此长度不包括正在占有CPU资源的线程。

参考值:

如果该队列的长度大于处理器个数+1,就表示处理器有可能处于阻塞状态(参考值:<=处理器个数+1)

3.硬件二 内存

①Memory\Available Mbytes

定义:

Available Mbytes,剩余的可用物理内存,以 MB 为单位表示。等于分配给待机(缓存的)、空闲和零分页列表内存的总和。

参考值:

保留10%的可用内存。对于较小内存也需要大于4MB空间可用 。

如果Available Mbytes的值很小,则说明计算机上总的内存可能不足,或某程序没有释放内存。

②Memory\Pages/sec 、 Pages Read/sec 和Page Faults/sec

定义:

Pages/sec,为解决硬页错误从磁盘读取或写入磁盘的页数。

这个值包括为满足错误而在文件系统缓存(通常由应用程序请求)的非缓存映射内存文件中检索的页 是 Memory\Pages Input/sec 和 Memory\Pages Output/sec 的总和。

参考值:

Pages/sec ≤ 20

此值持续高于几百,说明内存中有很多东西需要与硬盘交换。可能有内存问题,应考虑增加内存或更换内存 。

定义:

Pages Read/sec,为解决硬错误而从硬盘上读取的页数。

定义:

Page Faults/sec,每秒钟处理的错误页数,包括硬错误和软错误。

当处理器在内存中读取某一页出现错误时,就会产生缺页中断,也就是 page Fault。如果这个页位于内存的其他位置,这种错误称为软错误;如果这个页位于硬盘上,必须从硬盘重新读取,这个错误成为硬错误。

每秒发生页面失效的次数,页面失效次数越多,说明操作系统向内存读取的次数越多。

参考值:

该计数器的阀值为5,如果计数值超过5,则可以判断内存存在问题。

4.硬件三 磁盘I/O

①Physical Disk\Disk Time、Processor\Privieged Time

定义:

Disk Time,磁盘驱动器为读取或写入请求提供服务所用的时间百分比。

参考值:

Disk Time若数值持续超过80%,则可能是内存泄漏。应当总小于90%

说明:

(Disk Time、Physical Disk、)

1)如果只有%Disk Time比较大,硬盘有可能是瓶颈。指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。

2)如果三个计数器都比较大,那么硬盘不是瓶颈。

3)如果只有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。

②Physical Disk\Transfers/sec

定义:

Transfers/sec,在此盘上读取/写入操作速率。

参考值:

一般来说,定义该数值小于15ms为优秀,介于15-30ms之间为良好,30-60之间为可接受,超过60ms则需要考虑更换或是硬盘的RAID方式

5.硬件四 网络

①Network Interface\Byte Total/sec

Byte Total/sec,网络中接受和发送字节的速度。

参考值:

和目前网络的带宽进行比较。该计数器和网络带宽相除,<50%。

参考资料来源:

1.Windows性能指标分析https://blog.csdn.net/lluozh2015/article/details/50755480

2.性能测试知多少–系统计数器与硬件分析https://www.cnblogs.com/fnng/archive/2012/10/30/2747246.html