品味性能之道<一>:性能测试思维与误区
1、性能优化就是调参数
- 简单地认为性能优化就是调系统参数;
- 系统参数调整是性能优化的必要条件,但不是充分条件;
- 系统参数一定要调,还要合理地调,但调好了并不一定能解决所有问题;
2、性能优化主要是DBA和系统管理员的工作
- 数据库性能主要是系统问题,是系统管理员工作;
- 性能优化与软件开发人员关系不大,开发过程中,应用开发人员只关注业务功能的实现;
- 应用设计和开发对系统性能影响极大;
3、开发阶段无须考虑太多性能问题
- 应用性能主要在系统即将上线,或已经上线之后才进行考虑,开发阶性能问题未被内如考虑;
- 系统考虑的目标应该是综合的,在最初设计阶段就应该全面深入考虑、综合平衡,按照综合最优目标进行合理设计开发;
- 性能问题与软件工程的所有时间周期相关,尤其是设计和开发阶段对于性能影响最大;
4、优化SQL,就是教人写SQL
- 错误的认为,告诉我如何改一改SQL,就能执行得更快点;
- 优化SQL语句的性能,关键是了解SQL语句的原理和执行计划;
5、多表连接性能太差
- 错误的认为,多表连接性能太差,应该尽量减少多表连接操作,或者通过应用分步做;
- 多表连接是关系数据库的技术精髓之一,Oracle提供了丰富的表连接技术,关键是开发人员应该了解Oracle各种表连接技术的原理和适用场景;
6、CPU利用率越低越好
- 错误的认为,CPU利用率越低越好,利用率高就紧张;
- 交易系统中,CPU利用率越低越好。而在批处理系统里,充分适用资源,CPU利用率越高越好;
7、内存扩容解决性能问题
- 错误的认为,数据处理都在内存完成,没有磁盘I/O,应该不会再有性能问题;
- 尽量在内存完成数据处理,避免I/O操作,的确是性能优化的重要手段,但不应掩盖应用软件自身的问题;
- 所有数据处理都在内存完成,虽然没有磁盘I/O,但同样会导致CPU利用率的提高,并且速度也未必满足需求;
- 从源头降低不合理的数据访问量才是正确的优化思路,无论不合理的访问是在内存还是在磁盘上完成;
8、性能分析就是分析底层细节
- 错误的认为,性能问题出现时,一定要深入JVM与Oracle的内部参数、等待事件、Latch、缓存池、trace文件等底层细节;
- 从优化角度来讲,JVM的Young Gen、Old Gen、Perem Gen大小,Oracle的等待事件、Latch等指标,并不是问题的根源,而只是问题的表象;
- 在应用层进行合理的优化,这些指标会随之下降。既直接了当,又效果明显;
- 优化工作开始得越早,其效益也越高。同时,付出的成本也最小;
- 投产后才发现的问题有可能是灾难性的;
- 再好的硬件解决不了应用软件设计和开发的问题;
- 千万别讲性能优化全部寄托于硬件和系统层面;
第二阶段:并发用户继续增加,TPS基本维持在最大值不变,但响应时间将会逐步变长。
第三阶段:并发用户继续增加,TPS将会有少量下降(20%以内),但是决不能快速急剧下降,响应时间仍会逐步变长。本阶段可以拒绝服务,但是不能宕机。
第四阶段:并发用户逐步减小,系统处理能力开始得到恢复,TPS能够逐步恢复到之前的最大值,响应时间开始变短;
第五阶段:压力逐步降为零,TPS继续降低,响应时间继续变快,所有占用的CPU/内存/IO资源得到释放。
品味性能之道<一>:性能测试思维与误区的更多相关文章
- 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述
一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socket概述 ...
- 品味性能之道<十一>:JAVA中switch和if性能比较
通常而言大家普遍的认知里switch case的效率高于if else.根据我的理解而言switch的查找类似于二叉树,if则是线性查找.按照此逻辑推理对于对比条件数目大于3时switch更优,并且对 ...
- 品味性能之道<十>:Oracle Hint
Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. 因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Ora ...
- 品味性能之道<八>:Loadrunner关联技巧与字符处理
一.概述 Loadrunner作为HP出品的性能测试工具,拥有太多奇妙魔法甜点供予性能测试人员享用,其中吃起来比较有嚼劲的那就是关联了.当然在关联之后我们还需要一些简单的字符处理,用以生成 ...
- 品味性能之道<七>:索引基础
一.索引概述 索引(index),它是数据库必不可少的一部分.它其实很简单呐!很好理解. 索引好比如一本书的目录,一张地图,一个写字楼里挂在大堂墙上的公司名录,一个地铁站的出口指示 ...
- 品味性能之道<六>:图形化SQL分析工具
在上一章里,重点分享了命令行SQL分析工具的使用方法.在本章将重点分享PL/SQL的SQL分析工具. 一.如何打开PL/SQL执行计划 开启PL/SQL这工具,推荐如下方法: 点击 ...
- 品味性能之道<五>:SQL分析工具
一.SQL语句到底是怎么执行的? 想了解SQL语句到底是怎么执行的,那就需要进行SQL语句执行计划分析. 那什么是SQL语句执行计划呢? 就是Oracle服务器执行SQL语句的过程.例如确定是否使用索 ...
- 品味性能之道<三>:方法论
自顶向下的性能优化方法论 系统优化是包括系统设计.开发.产品上线.平台优化的全过程,不同阶段的优化工作对全系统所带来的效益是不同的.理想的性能优化论应该采用自顶向下的优化方法,即在项目设计.开发和上线 ...
- 品味性能之道<四>:管理重于技术
一.性能优化中的角色分工 (1).老外的角色分工 在oracle性能优化方法论中,将IT系统中不同角色需要承担的性能优化工作罗列如下. 各司其职的角色分工 业务分析人员 1.业务需 ...
随机推荐
- 分水岭算法(理论+opencv实现)
分水岭算法理论 从意思上就知道通过用水来进行分类,学术上说什么基于拓扑结构的形态学...其实就是根据把图像比作一副地貌,然后通过最低点和最高点去分类! 原始的分水岭: 就是上面说的方式,接下来用一幅图 ...
- [Flutter] Android沉侵式标题栏顶部叠加层去除
可能你的app是这样: 框起来部分和标题栏颜色并不一致. 调用下面的代码可以变成一样. import 'package:flutter/services.dart'; static SystemUiO ...
- PHP依赖注入(DI)和控制反转(IoC)详解
这篇文章主要介绍了PHP依赖注入(DI)和控制反转(IoC)的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 首先依赖注入和控制反转说的是同一个东西,是一种设计模式,这种设计模式用来减少程 ...
- Socket Error # 10013 Access denied
--------------------------- Debugger Exception Notification --------------------------- Project xxx. ...
- mongodb基础学习10-手动预分片
手动预分片是提前对分片创建一定数量足够使用的chunk,这样避免了IO上的压力 先对要演示的表进行分片 调用splitAt函数进行手动预分片,第一个参数指定要预分片的表,第二个参数指定分片规则,即当u ...
- HIBERNATE知识复习记录3-关联关系
先上一张图,关于几种关系映射: 抄一段解释: 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用.关联关系分为上述七 ...
- webserive学习记录1-jdk自带webservice
最近在看webservice有视频,想年后找工作时增加点资本,视频终于看完了,自己又增加了些东西,现在就把视频中学到的和自己发现的东西总结一下. java jdk中自带一个轻量级的webservice ...
- 漫画描述HDFS工作原理
作者不详,内容浅显易懂,特拿来与大家分享.
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器: <listener> <listener-class>org.spring ...
- jsp页面转发获取不到参数
使用的是<input type="hidden" name="nameid" value="${nameid}"/>,隐藏默认值 ...