性能测试的一些大实话:会linux命令以及其它工具,到底能不能做性能分析调优?

你是否被这样忽悠过?

3个月速成高级性能测试、独立承担项目性能任务并完成性能调优。。。。。。这样的宣传,比比皆是。

之前时不时有微信好友或者Q群群友咨询:

1、是不是会一些linux命令、会几个工具、会改常见中间件性能指标计数器,就能做性能分析调优了?网上或者某些资料演示的就是通过几个命令就定位到方法了。

2、是不是如某些人或者某些j构宣传的,会这些就能立马成为高级性能测试?就能大展手脚独立承担性能测试任务了?

我想说的是:

1、代码是必须的

其实,命令、工具只是辅助,对于简单的项目,有时候能帮我们快速找到问题,但是现在基本上都是比较复杂的项目,所以,看到的依旧是表象。

虽然网上或者某些资料演示的通过几个命令就定位到方法了,其实,有些演示犹如演戏,为了演示而故意这样写代码(我也可以几行代码就可以写出一个oom的问题、或者cpu高的问题),

实际项目是很复杂的,而要开发、部署企业级复杂架构项目来进行演示,各种成本都是非常高的。

就算你定位到方法了,那怎么优化呢?代码看不懂,也只能发给开发分析调优,

如果开发比较菜,也懵逼,一脸无赖的说:你定位错了吧,不可能的事儿,是服务器资源的问题吧!

估计你心里一万匹曹尼玛。

2、不是所有性能问题都涉及到代码

性能问题很多,不是所有的性能问题都需要看代码,比如压测过程中报获取不到连接,估计是连接满了,你适当调整下参数估计就ok了,

就像dba,估计也没研究过数据库的源码吧?一样可以凭借经验对数据库进行调优;

3、命令、工具不是万能的

有时候,通过命令,顶多能帮我们定位到问题,比如定位到代码方法,但是要调优,还是得懂代码;

而且,有时环境或者权限受限,比如:非自带命令没有权限安装,或者没权限往服务器上传安装包,或者普通用户无法运行命令,这下怎么分析呢?

所以,不要过度依赖非自带命令,注意,这里强调的是非自带命令,自带命令还是要好好利用的;

学习建议

要学好性能需要掌握的内容:

  压测工具及场景设计

  搭建监控平台(现在基本上都是集群环境)

  操作系统(掌握常见自带命令)

  集群应用(发现可能是代码问题,能看懂代码,大部分都是java,那就学学:java基础、spring、springboot等等)

  RDBMS、NoSQL、MQ等,这些你知道大概原理和常用的性能计数器就可以了,当然,能看源码就更6了,这些都是经历过千锤百炼的,本身性能问题很少,大概率是一些配置的问题

  JVM

  网络

  其它  

能看懂代码才是“王炸”,比如根据堆栈信息,能去分析代码,万事开头难,不懂的可以问开发或者度娘,搞不定可以发给开发,你就看他怎么分析的,多跟着学习。

所以,要深入做性能,代码是绕不过去的,代码至少能大概看懂,别被网上xxxx宣传的忽悠了,高级性能速成是不可能的,独立承担、完成性能项目,对测试要求不是一般的高,so,认清现实很重要,一步一步提升。

总结

代码和实践非常重要!!!

代码都看不懂,谈什么高级性能分析调优?顶多就是个只会监控、调性能计数器的初中级性能测试;

突然想起一句某大师说的:你不懂代码,怎么能发现开发的问题?这里的问题是代码的问题,而不是我们平时功能测试看到的表象,我觉得:这是对测试的最高要求了,总之代码是趋势,哪怕是后面转岗互联网其它岗位也是有优势的,早做准备吧,僧多肉少的环境。

不实践,就像古人说的:纸上得来终觉浅,绝知此事要躬行。

性能PK测开:https://www.cnblogs.com/uncleyong/p/11995605.html

原文地址:https://www.cnblogs.com/uncleyong/p/13590002.html