系统性能调优的一些方法

1 街灯讹方法

用户随意选取自己熟悉的观测工具测量,相当于使用top(1)不是因为这么做有道理,而是因为不知道怎么使用其它的工具,可能找到的问题是真的问题,但未必是你想找的问题

2 随机变动

用户随机猜测问题可能存在的位置,然后做出改动知道问题消失eg 随意选择一个变量改动、朝着某个方向修改、测量性能、朝着另一个方向修改、测试性能(5性能优于3?保存修改,否则返回1),这样做存在的风险是生产高峰期可能会产生很严重的后果,要准备好回滚方案

3 Ad Hoc核对清单法

把所有该 考虑的因素写入一份清单,检查人员去覆盖所有的情况,一一排查

4 问题陈述法

1)是什么让你觉得产生了性能问题

2)系统之前运行的好吗

3)最近有什么改动?硬件、软件、负载 ?

4)问题可以复现?

5)问题会影响其它的程序吗

6)环境是大概什么样的 ? 使用了哪些硬件和软件?什么版本,什么配置

5 科学法:

问题 ? 假设--> 预测 --> 试验 --> 分析

不断的用结果去修正判断

6 工具法:列出所有可用工具及对于每个工具的可提供的有用指标,怎样阐释这些指标

7 USE方法,简言之就是对于所有的资源监测它的使用率,饱和度和错误

资源列表:CPU(插槽、核、硬件线程) 内存(DRAM) 网络接口(以太网端口) 存储设备(磁盘) 控制器(存储 网络) 互联(CPU、内存、IO)

8 工作负载特征归纳:

1) 负载是谁产生的?进程ID、用户ID、远端的IP地址 ?

2)负载为什么会被调用?代码路径、堆栈跟踪?

3)负载的特征是什么? IOPS、吞吐量、方向类型(读取?写入?)、包含变动(标准方差)如果有的话

4)负载是怎样随时间变化的?有日常模式?

9 向下挖掘分析:

1)查询多了数据库就开始变慢 ? 

2)由于内存换页磁盘IO延时?

3)数据库内存使用变大 ?

4)分配器消耗的内存增多?

5)分配器存在内存碎片问题 ?

10 延时分析:

1)存在延时?Y

2)请求时间大量的花在哪里?CPU或者文件IO

3)不花在CPU上的时间花在哪里?文件系统IO

4)文件系统的IO是花在磁盘上还是锁竞争?磁盘IO

5)磁盘IO的主要时间是随机寻址的时间还是数据传输的时间? 数据传输

11 事件跟踪 tcpdump iosnoop iostat

12 基础线统计 先了解正常是什么

13 静态性能调整 系统空闲时检查

1)该组件是必须的?

2)配置是针对预期的工作负载设定的 ?

3)组件的自动配置是对预期的工作负载来说最优的?

4)有组件出现错误?是在降级状态?

14 缓存调优

从应用程序到磁盘会有多级缓存来提高IO性能

1)缓存的大小应尽量和栈的高度一样,靠近工作秩序的地方,减少命中缓存的资源开销

2)确认缓存开启并确实在工作

3)确认缓存命中率

4)若缓存大小是动态的,确认它的当前尺寸

5)针对工作负载调整缓存,这项工作以来缓存的可调整参数

6)针对缓存调整工作负载



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值