什么是性能调优?
性能调优是调整系统设置以提高计算资源利用率,数据吞吐量和用户体验的过程。它需要非常了解系统的硬件和软件组件,以及系统之间的许多交互。性能调优有时也被称为“黑色艺术”。
性能调优经常与故障排查相混淆。但两者有很多区别。在做故障诊断时,主要目标是发现并解决问题。在性能调优时,主要目标是通过利用系统运行时的资源和环境使得系统以尽可能更好的性能运行。
性能调优的目的
1、为某一特定的角色来调优
- 数据库服务器
- 文件服务器
- Web 服务器
- 电子邮件服务器
- 中间件等
2、找出和调整系统瓶颈
3、获得更快的响应时间或者更大的吞吐量
相关概念
调优目标:设置明确的性能目标可以在成功调节性能后获得可度量的收益。
性能瓶颈:当资源或设备达到其最大操作容量时,就出现了瓶颈,瓶颈会影响整体性能。
人为因素:在系统调优时,必须考虑人的主观因素。
负载优化:性能调优通常针对特定工作负载进行优化,但这时可能其他工作进程会被这些设置所阻碍。
吞吐量和延迟:吞吐量是指给定时间内资源可以传输或处理的数据量的度量;延迟是资源必须等待开始数据传输或处理的延迟。
调优的方式
1、业务层调优
- 关闭无用的服务。
- 调整业务流程,例如合并一些相似的业务
- 关闭一些影响性能的定时任务
2、应用层调优
- 是否能够把花费大量资源的应用滞后,例如 DNS 反向解析。
- 提高日志的等级
- 使用异步写入日志
3、Kernel层调优
调优办法:
USE 方法(utilization saturation errors)能够快速分析系统性能问题,其主要思想是首先识别每个单独的资源,然后检查每个资源的错误,利用率和饱和度。
一言蔽之,就是:对于所有的资源,查看它的使用率,饱和度和错误值。这些术语定于如下:
-
资源:服务器上各种硬件设备,CPU,内存,硬盘,网络设备等。
-
利用率:在单位时间内,资源用于服务工作的时间百分比。不能接受更多工作的程度被视为饱和度例如 CPU 的平均运行队列。例如,单个CPU 运行在 90%左右的使用率上。
-
饱和度:资源不能够再服务更多额外的工作的程度。例如,CPU 平均运行队列为 3。
-
错误:错误事件的个数。某个网络接口发送了50次滞后冲突。
度量和资源类型
-
CPU 资源:通常度量 CPU 性能的指标是CPU 利用率,平均负载和平均队列。
-
内存资源:内存是一种容量资源,通常度量性能的指标是空闲容量,吞吐量和错误。
-
存储设备:即是容量资源也是I/O 资源,通常度量的指标是空闲容量,IOPS 和 I/O 等待时间和吞吐量。
-
网络资源:被认为是一种 I/O 资源,通常度量的指标是吞吐量,往返时间,延迟,包丢失,错误和冲突。
术语
-
IOPS:每秒发送的输入输出操作的次数,是数据传输的度量方法。对于磁盘而已,IOPS 是指每秒读写次数。
-
吞吐量:用于评价速度,在数据传输方面,吞吐量用于描述数据的传输速度(字节/秒)。
-
响应时间:一次操作完成的时间,包括等待和服务的时间。
-
延迟:描述用来等待服务的时间
-
使用率:在给定的时间内资源的繁忙程度。
-
工作负载:对系统所施加的工作压力。
-
瓶颈:限制系统性能的那个资源。
监控工具