思考题:
- Tomcat 的应用服务器,应该如何拆解监控计数器呢?
- 我们应该如何判断应用服务器的线程是否够用?
读者:
1.如何判断代码快不快,我的理解是,压力工具中的线程数设置低于中间件的线程数,看看测试过程中服务器返回响应是否足够快
2.如何判断应用服务器线程是否够用?
测试过程中应用监控工具如jvisualvm监控线程同一时刻是否有空闲状态,如果一直是run那able状态,同时响应时间不断增加,说明线程数不够用
3.类似 Tomcat 的应用服务器,应该如何拆解监控计数器呢?
从以下几个方面的计数器来分析:协议(http,https),运行模式(BIO,AIO,APR),线程池;超时时间,压缩,TCP不延迟,禁用DNS查询,禁用AJP
作者回复: 非常认真的同学呀。
思考题:
MySQL 中全局监控工具可以给我们提供哪些信息?
以及,如何判断 MySQL 状态值和配置值之间的关系呢?
读者:
MySQL 中全局监控工具可以给我们提供哪些信息?
索引报表、操作报表、查询和排序报表、查询缓存报表、表锁报表、表信息报表、连接报表和临时报表、线程报表、innodb缓存池报表、innodb锁报表、
如何判断 MySQL 状态值和配置值之间的关系呢?
SHOW GLOBAL VARIABLES;用来查看配置的参数值,和SHOW GLOBAL status;用来查询状态值
测试结束后通过mysql监控工具查看和分析状态值,从而判断数据库配置值是否合理
作者回复: 非常正确。
思考题:
你能说一下数据库分析的大体思路是什么吗?
如何在数据库中迅速找到一个慢 SQL 的根本原因呢?
读者:
数据库分析的大体思路是什么吗?
全局分析--定向分析
1.全局分析:分析数据库硬件配置,数据库配置,SQL语句,采用全局监控工具如mysqlreport工具收集到的测试数据,分析可能存在的问题;
2.定向分析:如:针慢查询导致的性能问题,采用pt-query-digest工具分析慢查询日志抓取存在问题的sql,利用profiling分析sql语句的每一个层级,查看sql执行计划,对sql进行优化。
如何在数据库中迅速找到一个慢 SQL 的根本原因呢?
profiling分析sql语句的每一个层级,结合sql语句执行计划分析慢sql根本原因
作者回复: 抓住重点了。
思考题:
你可以说一下 APM 工具可以为我们提供哪些分析便利吗?
SkyWalking 有哪些具体的功能点可以帮助我们进行性能分析呢?
读者:
pinpoint可监控到函数,是否更好用!
作者回复: 监控越细。性能影响越大。只要能承受这个,用pinpoint也可以。函数消耗时间的判断,我觉得是更定向的内容。可以在知道了接口慢之后,再进一步定向监控。
如果一开始就监控所有函数,那就承受性能影响就行了。
思考题:
Ramp-up 配置有什么样的作用?
为什么说压力工具中 TPS 和响应时间曲线抖动过大会不易于分析?
读者:
Ramp-up 配置有什么样的作用?
答:Ramp-up 配置的时间是指启动所有配置的线程总数所用的时间,例如设置的线程总数为500,Ramp-up设置的时间为50s,意为:启动500个线程数需要50s,平均为每一秒启动10个线程
为什么说压力工具中 TPS 和响应时间曲线抖动过大会不易于分析?
答:性能分析一定要分析曲线的趋势,通过趋势的合理性来判断性能瓶颈所在的原因,光靠平均值、最大值、最小值、中位数是无法确切的分析处压测过程中服务器的具体情况,只有通过分析曲线趋势,增加对趋势的敏感程度才是压测过程中更好的保障和前提。
作者回复: 理解到位,已经出师。
读者:
今天好像明白一些东西,发现自己之前好像是一直是错的(好像一直理解这个都错了),就是Ramp-up是启动所有线程的时间,但是只是启动,实际上所有线程启动后压力时间是Duration,可以这样理解吗?然后tps抖动过大,那其实中间值这些数据就是完全没有意义的。
作者回复: duration包括rampup。
抖动的tps就是要分析的内容,不是没意义。
读者:
Ramp-up 配置有什么样的作用?为什么说压力工具中 TPS 和响应时间曲线抖动过大会不易于分析?
(1)ramp-up就是线程启动时间 。比如10个线程120s基本就是 梯度加压 5个线程运行60s之后再启动50线程运行,是否停止要看是否设置循环等,是一个等比例的梯度加压。
(2) 曲线抖动过大,可以肯定会有异常,这个题确实不会做
作者回复: 曲线抖动大了,不容易分析异常和趋势之间的关系