假期还没有结束,一个个POC测试已经约起来了。9月份几乎每天都有三四个POC在同步进行,我的很多精力都是在盯POC结果。有一种声音在告诉我你不要管技术了,有一波人在不停给我打电话,有客户、有销售、有合作伙伴、有领导,他们说这个测试你一定要盯......我的9月份就是处于这是纠结和撕扯中,也下场做了POC。
现将自己的调优思路分享给大家:
一、明确测试目标、测试计划,与相关干系人达成一致意见。
我们的工作都是多线程的,每天并行十几个任务都是很正常的。所以要把握每个任务的优先级与时限。现在POC有现场还有远程,现场POC场景单一,现场人员一般没有其他任务,但是远程POC人员一般还会有其他任务在身,所以一定在做POC之前与测试负责人沟通确认他们的测试计划、测试目标、达标要求,尽量了解竞争对手的情况。避免出现以下情况:测试计划时间结束了才达到测试目标,导致结果未被记录;不了解测试达标要求,未达到测试要求,后期进行大量的工作进行补救。
二、有效沟通。测试过程中遇到问题是难免的,环境的问题、应用的问题要及时反馈给销售、测试组织者和客户,争取足够资源。测试中遇到自己解决不了的适配或性能问题要积极向有经验的技术人员请教,务必快速解决问题。工作的目的是成功,而不是经历这个过程,没有迫切的成功意愿,不积极求助的员工都是不合格的,利用团队的力量共同成功在现阶段是必须的。
三、熟练掌握各种性能测试工具及监控工具,能够有效分析测试瓶颈。目前经常遇到的瓶颈包括且不限于:网络瓶颈、测试工具瓶颈、数据库瓶颈、中间件瓶颈、应用瓶颈等。
网络瓶颈可以通过nmon或其他监控工具分析压力端和服务器端网络占用情况来进行分析,如果网络满了,CPU占用率未满,那就可以尝试启用压缩,加大CPU使用,降低网络占用率来提升TPS。
测试工具瓶颈要分析测试脚本、测试场景、启动测试工具端的性能监控来进行分析。
数据库瓶颈截取jstack,如果大量线程都在进行数据库相关的处理,可以考虑JDBC驱动的版本是否合适、数据源参数设置是否合适、数据库端的设置与优化。
中间件瓶颈可以通过监控线程情况分析线程池大小是否合适,JDBC监控判断jdbc设置是否合适。JVM监控判断内存使用情况,分析是否有内存泄漏。web应用除了调优线程池和数据源连接池,还要考虑线程池调度线程的个数、是否静态缓存、是否使用长连接、是否启用压缩、JVM设置等。
应用的瓶颈一般通过jstack也能分析出来锁或者开源缺陷等。
四、及时总结、分享。每个人要把自己遇到的场景、问题解决的思路和方法分享给大家,这样才能持续进步。