本章主要介绍全链路性能测试的优势,与传统压测的差异,企业为什么要做全链路压测;从三个角度分析全链路压测需要具备的核心技能,也是本课程的学习路线。
本章介绍了被测应用程序;准备Linux 系统环境;Linux服务器上安装部署数据库MySQL以及Redis;Nginx 安装部署以及Tomcat安装部署、启动。
本章主要介绍系统监控软件和部署所需要的所有组件,包括采集系统性能数据的Node_Exporter ;监控报警系统的Prometheus;安装配置可视化监控工具Grafana;剖析 Node_exporter、Prometheus、Grafana 三者之间的关系以及解释了Grafana 图形界面计数器。
本章我们首先安装了JMeter以及对它进行基本界面介绍,准备了压测脚本,然后在Linux下运行压测脚本,理清“响应时间、线程数、用户数、TPS”之间的关系。 然后对Grafana dashboard 进行大概介绍,用Grafana 展示多台服务器上的数据,进行了只对Tomcat2加压以及对Tomcat1和Tomcat2都加压的情况验证;用Grafana 展示influxdb中JMeter执行的压力数据;介绍 JMeter的执行命令、各参数如何使用。
这一章主要介绍系统监控软件和部署这些软件,介绍了APM 系统和Skywalking,以及演示了Skywalking 服务端部署和SkyWalking Agent部署。配置SkyWalking 监控你的被测系统。
这一章介绍了Metrics和自定义 Metrics代码讲解,用grafana展示自定义metrics数据,被测系统各个组件性能数据的采集介绍。讲解了JMX Exporter 下载安装配置,JMX-Exporter通过HTTP服务方式暴露监控指标数据,Prometheus通过HTTP协议拉取监控指标数据,用Grafana + JMX Exporter + Prometheus 监控 JDK,采集 JMX 组件性能数据。
这一章我们介绍了如何采集 Nginx 组件的性能数据,讲了采集思路、下载编译安装OpenResty Nginx,然后下载编译安装、启动Nginx_vts_exporter,配置Nginx 配置文件,实例演示Nginx_exporter监控数据的合理性,用Nginx_VTS_Exporter + Prometheus + Grafana 采集并展示 Nginx 性能数据。
这一章我们讲了MySQL、Redis 数据库的性能数据采集思路,安装 MySQL_Exporter,监控 MySQL 数据库性能指标,然后在压测实战跑起来之后,实时观察MySQL性能监控数据。接着又安装 Redis_Exporter,对 Redis 数据库进行性能监控,用Redis_Exporter + Prometheus + Grafana,实现 Redis 性能数据的采集和展示。Redis_Exporter压力运行起来后对Redis数据的监控。
本章介绍了Kafka 的概念,Kafka 的特性、使用场景、优势,演示 Kafka集群搭建过程,用Kafka 创建 topic,模拟生产者和消费者发送接收消息及压测10万以及1000万条消息,讲解了集群系统层面的监控性能指标,用Kafka_Exporter + Prometheus + Grafana,实现 Kafka 性能数据的采集和展示。
这一章首先介绍了测试场景的执行环境,解释了性能测试概念,性能场景分类,性能指标和事务的定义,性能指标的划分和性能测试的3个阶段,以及测试数据从生产环境到性能测试场景的转换。 然后准备了性能测试场景所用的脚本,执行了4种性能测试场景:单业务性能测试场景;混合业务容量场景;稳定性场景和异常场景。 然后讲解了分布式压测如何配置以及如何执行。 最后把性能测试场景结果用Grafana展示以及分析。
这一章介绍了TPS、响应时间、压力线程之间的关系,介绍了CDN是什么?对性能有什么影响?然后讲解了性能报告中采样数据频率的设置-通过毛刺分析性能,解释了什么是性能的衰减?分析性能衰减趋势的重要意义。最后讲解了压力和资源使用率之间的关联关系及总体趋势,讲了压力和CPU使用率之间的关系。
本章介绍了如何分析CPU/内存/网络/IO的性能,首先介绍了操作系统的核心组件Linux内核,通过观察进程的执行过程了解Linux进程状态转换,然后讲解了如何分析CPU的性能,讲了如何进行网络实时流量监控分析,以及如何进行网络状态监控分析,讲了如何对内核线程、虚拟内存、磁盘、CPU活动的统计分析。接着讲了CPU/Memory/IO/Network/System/Swap 6大模块必会监控命令,以及Load Average系统平均负载分析,讲了pidstat 命令 - 分析统计系统资源占用情况。
本章介绍了如何分析CPU队列的变化趋势,压力和内存使用率之间的关系,讲了在性能测试中,操作系统级别的内存主要看什么,TCP三次握手机制对性能提升的影响,网络状态中TIME_WAIT连接数的含义。还讲解了通过发送队列和接受队列判断问题在哪端,网络数据发送和接收过解析。最后讲了如何观察压力与网络数据的变化趋势,如何找到网络带宽和端口的对应关系,如何看所有操作系统参数。
这一章介绍了如何看懂Nginx架构图来进行性能瓶颈分析,进行Nginx性能相关的配置,讲解了 Linux存储栈中的DirectIO对Nginx性能的影响。讲解了Nginx中的请求时间和响应时间分析,安装了Goaccess日志分析工具,结合Goaccess,配置Nignx日志格式,对Nginx日志数据统计分析,以及Goaccess 图形化展示Nginx日志信息。
这一章介绍了如何用JDK自带的监控工具JVisualVM和JMC远程连接配置监控应用程序。对应用进行诊断分析。分析 CPU 峰值、应用程序中的无响应性、响应时间差、线程挂起、高内存消耗等方面。
这一章从架构角度了解了MySQL,安装了MySQL Report来进行全局分析MySQL性能,对MySQL Report内容进行了讲解。讲解了MySQL慢查询日志如何打开及配置,用MySQL Profiling剖析SQL语句,讲解了是否添加索引对SQL语句的影响。用MySQLDump Slow 对mysql进行慢查询分析,安装pt-query-digest慢查询分析工具,对MySQL慢查询进一步分析诊断。
这一章讲了Redis Benchmark,这是Redis自带的基准性能分析工具,还讲了Slow Log 来分析Redis慢查询日志。讲解了Redis Info统计分析及调优方向以及Redis监控界面和命令行信息对比分析,来解决Redis 数据库性能瓶颈。
这一章讲解了JVM性能分析的内存分析和垃圾回收机制的实时执行情况分析,以及GC原因加载和编译class次数统计分析。用JConsole监视统计JVM资源信息。还讲解了堆内存CPU线程及加载类分析,线程栈分析,对CPU消耗的监控,对内存消耗的监控,JMC监控应用程序。讲解了如何排查线程CPU和内存的占用。反编译,看线程栈和CPU消耗。分析哪些线程调用此方法、调用栈_trace看方法调用所消耗的时间、_sm看一个类里有哪些方法等等。
这一章讲解了如何跟踪Linux系统调用,编译安装Linux系统性能分析工具,讲解了如何查看perf所支持的性能事件,讲解了如何分析系统执行函数所消耗的CPU时钟,讲解了如何分析系统/进程的整体性能概况,讲解了如何评估系统特定性能;讲解了如何记录并分析系统/进程的运行情况。还讲了如何生成火焰图来可视化处理perf生成的数据,如何对内核跟踪和探测,如何 跟踪进程的执行流,跟踪特定流程和特定函数,查看内核文件中函数的执行流程,讲解了特定线程的CPU消耗跟踪结果及火焰图展示分析。
这一章讲了性能测试报告编写思路及注意事项,如何编写性能分析与调优报告,以及性能测试方案总结及拓展。讲了不同业务场景的全链路压测模型创建思路,以及不同业务场景下,解读性能需求指标。
选课、学习遇到问题?
扫码添加指导老师 1V1 帮助你!
添加后老师会第一时间解决你的问题