性能测试面试题,5分钟速刷一下!

软件还得用芯学 2024-07-11 10:08:49
如果你最近面试过程中被卡在了性能面试题上,那么意味着你需要多刷刷面试题了。当然有认真学过,能够充分理解就更好啦~ 1、简述性能测试的步骤/流程? ①分析需求 ②制定测试计划和方案(时间,人力) ③设计性能测试场景和用例(并发,负载,压力,稳定性等) ④搭建环境 ⑤准备用户数据(如何确定用户并发数) 线上的注册用户数的10%做测试环境的在线用户 根据高峰时间段和业务量,计算平均并发和峰值并发 ⑥设计性能测试脚本(jmeter) 线程、请求数、关联、断言、参数化、报告 不同的线程组设计不同的测试类型 ⑦运行、监控测试数据 ⑧分析性能瓶颈:吞吐量,响应时间,资源利用率 ⑨性能调优 :吞吐量调优,网卡宽带、硬件调优、Cpu,磁盘 ⑩出具性能测试报告 2、CPU资源利用率很高如何排查? ①CPU资源利用率很高的话,需要看CPU消耗User、Sys、Wait哪种状态。 ②如果CPU User非常高,需要查看消耗在哪个进程,可以用top(linux)命令看出,接着用top –H –p看哪个线程消耗资源高。如果是Java应用,就可以用jstack看出此线程正在执行的堆栈,看资源消耗在哪个方法上,查看源代码就知道问题所在;如果是c++应用,可以用gprof性能工具进行分析。 ③如果CPU Sys非常高,可以用strace(linux)看系统调用的资源消耗及时间。如果CPUWait非常高,考虑磁盘读写了,可以通过减少日志输出、异步或换速度快的硬盘。 3、一个web系统,用户从打开浏览器输入网址页面显示在浏览器中,这个过程当中,页面给用户总的响应时间通常可以细分为哪些? 从客户端到服务端的请求时间(请求网络传输时间request),从服务端返回数据到客户端的时间(响应网络传输时间response),页面渲染时间(客户端浏览器加载页面的时间),处理器的处理时间(应用服务器+数据库服务器处理时间)。 4、响应时间和吞吐量直间的关系是什么? 吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。 5、怎么根据线下环境评估线上环境的性能? 首先线下必须要有专门的性能测试环境 线下环境单台机器配置和线上不能相差很大,可以通过单台的机器性能推算出多台机器性能(需考虑一定的性能损耗) 如果线下机器配置很差,只能测试出程序有无性能问题,这样线下测试出来的数据对线上没有太大参考意义 如果想获取比较准确的线上性能情况,建议最好做线上的性能测试 6、应用服务器cpu高和数据库服务器cpu高的分析思路是什么? 应用服务器的cpu高,先要看tps和响应时间,如果tps比较高,我们认为是正常的cpu消耗;如果tps比较低,那么往往某些代码过于消耗cpu,可以考虑使用jprofiler分析下 数据库服务器cpu高,往往是因为sql语句执行效率比较低,可以通过对数据库慢查询是监控,结合执行计划进行分析,是否是相关表没有索引或索引未生效 7、出现内存泄露的根本原因是什么?你是怎么定位内存泄露原因的? 内存泄露的根本原因是Jvm中老年代中存在着大量存活的对象,这些对象不能被GC回收掉,从而占满了整个老年代,造成Jvm一直处于FGC的状态,程序没有响应,服务器报OOM错误 内存泄露主要通过分析老年代中占用空间最大的类都有哪些,然后去代码中找对应的类的创建。通常可以使用jdk提供的jvisualvm和jmap进行堆内存的分析 8、tps压不上去,可能有哪些方面的原因? 压力机本身性能瓶颈 网络IO瓶颈 中间件(tomcat/nginx/mysql)连接数限制 Java线程的阻塞、等待 本系统资源的瓶颈(cpu、内存、磁盘、网络等) 其他外部系统响应时间过长,造成本系统的time-wait 9、什么是集合点,什么场景下需要用集合点? 集合点是测试脚本中的一个标记,当每个虚拟用户执行到标记处时,会停留在标记处等待其他的虚拟用户,当达到预期设置的并发数时,标记处的所有用户同时启动执行后续的请求 集合点会产生瞬间高并发,但是也会降低平均压力。所以在压测过程中,如果有要求瞬间高并发的业务,就需要使用集合点,比如抢购,秒杀之类的业务。没有类似业务则不需要加集合点 10、服务器的cpu使用率和load是什么关系? 通常情况下,cpu使用率和load值是正比关系,即cpu使用率越高,load值越高。但是在一些特殊情况下,也会出现cpu使用率不高,但是load值较高的情况 比如某系统只能使用CPU中的单核运行,它可以占用单核cpu100%,但从整体cpu使用率来看,只是使用了一小部分。而随着并发的增大,单核CPU的任务队列会越来越长,造成了load值较高 上面就是一些常见的性能测试面试题,速刷一下,为面试做准备吧!
0 阅读:5