性能分析与调优的原理最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库
从操作系统(CPU 调度,存管理,进程调度,磁盘 I/O)、网络、协议( , TCP/IP),还是从应用程序代码,数据库调优,中间件配置等方面入手
单一个中间件又分 web 中间件(apache、IIS),应用中间件(tomcat、weblogic、webSphere)等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功
但调优对于每一项的要求又不仅仅是“知道”或“会使用”这么简单
起码要达到“如何更好的使用”
常看到性能测试书中说,性能测试不单单是性能测试工程师一个人的事儿
需要 DBA 、开发人员、运维人员的配合完成
但是在不少情况下性能测试是由性能测试人员独立完成的,退一步就算由其它人员的协助,了解系统架构的各个模块对于自身的提高也有很大帮助,同进也更能得到别人的尊重
再说性能调优之前,我们有必要再提一下进行测试的目的,或者我们进行性能测试的初衷是什么
能力验证:验证某系统在一定条件具有什么样的能力
能力规划:如何使系统达到我们要求的性能能力
应用程序诊断:比如存泄漏,通过功能测试很难发现,但通过性能测试却很容易发现
性能调优:满足用户需求,进一步进行系统分析找出瓶颈,优化瓶颈,提高系统整体性能
一、一般系统的瓶颈性能测试调优需要先发现瓶颈,那么系统一般会存在哪些瓶颈:1、硬件上的性能瓶颈:一般指的是 CPU、存、磁盘 I/O 方面的问题,分为服务器硬件瓶颈、网络瓶颈(对局域网可以不考虑)、服务器操作系统瓶颈(参数配置)、中间件瓶颈(参数配置、数据库、web 服务器等)、应用瓶颈(SQL 语句、数据库设计、业务逻辑、算法等)
2、应用软件上的性能瓶颈:一般指的是应用服务器、web 服务器等应用软件,还包括数据库系统
例如:中间件 weblogic 平台上配置的 JDBC