文章目录
性能调优
目的
为了获得更好的系统性能
通过调优满足业务需求
降低系统的时间复杂度与空间复杂度
调优指标
吞吐量
- TPS(Transaction Per Second 每秒事务数) = 并发数 / 平均响应时间
- QPS(Queries Per Second 每秒查询率)
数据库中的概念,每秒执行条数(查询)
被引申到压测中来: 一台服务器每秒能够响应的查询次数
对一个查询接口,且内部不会再去请求其它接口
- 单场景,tps = qps
- 容量场景,n*tps = qps
并发数
系统同时处理的request/事务数
- 每个事务包括了如下3个过程:
1. 向服务器发请求
2. 服务器自己的内部处理(包含应用服务器、数据库服务器等)
3. 服务器返回结果给客户端
响应时间(RT)
事务平均响应时间(ART)
客户端从提交请求到接受到应答所经历的时间
访问量(PV: Page View)
性能分析 (巡检)
分析 运行环境 与 应用程序,确定调优目标
巡检手册模板
https://download.csdn.net/download/xyc1211/15419706
https://download.csdn.net/download/xyc1211/15419604
硬件运行情况
-
cpu
vmstat ,sar,iostat -
内存
free,vmstat -
磁盘IO
iostat -
网络
netstat -
其他监控工具
nmon
nmon -f -m /tmp -s 10 -c 719
操作系统情况
- 进程
- 文件系统
- swap交换区
- 内核参数
程序情况
- 服务线程状况
- 启动日志、GC日志、应用日志
- 日志配置路径、备份情况、清理机制、日志空间、日志级别等
- 证书有效期
数据库情况
- AWR报告
- 表空间
增长情况、预留空间情况、是否自动扩展等 - 数据文件扩展
tmp表空间是否自动扩展、undo表空间是否自动扩展 - ASM磁盘组
冗余方式、可用空间 - 数据库日志
数据库异常、未捕获异常、死锁, 日志文件切换频率 - 数据库失效对象
- 数据库安全分析
跨Schema调用、使用dblink、含有dba权限的用户 - 大表分析
- 序列缓存分析
序列是否都正确创建,都进行的缓存 - 高水位分析
分析水位比值高的数据表
调优目标
JVM
GC垃圾回收
网络
TCP内核参数
应用程序API参数
IO模型TRANDE OFF
资源隔离优化
网卡/CPU配置
加密算法,数字签名
数据库
- 性能监控
oracle AWR - 数据类型优化
- 查询sql优化
- 索引优化
- 参数优化
- 分布式优化
- sql注入,web攻击
Linux内核
- 单线程最大打开文件数
- 内核内存参数
- tcp
- KEEPALIVE消息频度
- FIN_WAIT_2状态世界
- 接收缓存
- 内核套接字接收缓存
内核SYN攻击
内存溢出,泄漏
cpu缓存
磁盘IO性能
中间件底层
使用了哪些中间件,有没有办法优化
容器环境
镜像体积,构建速度
docker网络方案