随笔分类 -  性能测试实战30讲

1 2 下一页
23丨当Postgres磁盘读引起IO高的时候,应该怎么办
摘要:在性能分析的人眼里,性能瓶颈就是性能瓶颈。无论这个性能瓶颈出现在代码层、操作系统层、数据库层还是其他层,最终的目的只有一个结果:解决掉! 有人可能会觉得这种说法过于霸道。 事实上,我要强调的性能分析能力,是一套分析逻辑。在这一套分析逻辑中,不管是操作系统、代码还是数据库等,所涉及到的都只是基础知识。 阅读全文
posted @ 2020-08-17 16:20 肉松蛋卷 阅读(1958) 评论(0) 推荐(0) 编辑
22丨案例:当磁盘参数导致IO高的时候,应该怎么办
摘要:在大部分的性能项目中,当系统调优到一定程度的时候,性能的瓶颈往往会体现在两类计数器上:一个是CPU,另一个就是磁盘I/O了。所以我们也经常会在一些性能优化的文章中看到两个分类,分别是CPU密集型和磁盘I/O密集型。 有人说为什么不说内存呢?内存是那么重要。不是说内存不会成为瓶颈,只不过内存的瓶颈基本 阅读全文
posted @ 2020-08-17 16:18 肉松蛋卷 阅读(696) 评论(0) 推荐(0) 编辑
30丨案例:为什么参数化数据会导致TPS突然下降
摘要:在性能测试中,参数化数据是少有的每个性能测试工程师都会用得到,却经常出现问题的技术点之一。从我的角度来说,究其原因,大部分是因为对性能参数化数据的理解不足。导致的结果就是用了参数化,但和真实的用户场景不一致,从而使得整个性能测试场景都失去了意义。 这样的例子不在少数。 一个项目开始之初,由于没有历史 阅读全文
posted @ 2020-08-17 16:17 肉松蛋卷 阅读(885) 评论(0) 推荐(0) 编辑
29丨案例:如何应对因网络参数导致的TPS%08呈锯齿状
摘要:并且不是每一个项目都能让你有分析性能瓶颈的机会,因为有很多问题都是重复的。 所以性能分析是一个需要不断总结出自己的分析逻辑的工作,有了这些分析逻辑,才能在新项目中无往不利。请注意我的描述,我强调的是要有自己分析的逻辑,而不是经历多少个性能问题。因为问题可能会遇到新的,但是分析逻辑却是可以复用的。 在 阅读全文
posted @ 2020-08-17 16:15 肉松蛋卷 阅读(522) 评论(0) 推荐(0) 编辑
28丨案例:带宽消耗以及Swap(下)
摘要:分析的第二阶段 Swap的原理和对TPS的影响 前面有一个扣,是说swap多的问题。要理解swap为什么是黄的,得先知道什么是swap。我先画个简易的示意图。 这里先解释一下,对于一个Linux系统来说,如果配置并开启了swap分区,那么默认的swappiness参数是60。 swappiness是 阅读全文
posted @ 2020-08-17 16:12 肉松蛋卷 阅读(279) 评论(0) 推荐(0) 编辑
27丨案例:带宽消耗以及Swap(上)
摘要:今天我们来看一个真实的案例。事情是这样的,之前有人在微信上问我一个问题,这个问题的现象很典型:典型的TPS上不去,响应时间增加,资源用不上。 大概的情况是这样的:有两台4C8G的服务器,一台服务器上有2个Tomcat,一台服务器上是DB。压测的混合场景有4个功能模块,其中3个访问一个Tomcat,另 阅读全文
posted @ 2020-08-17 16:09 肉松蛋卷 阅读(328) 评论(0) 推荐(0) 编辑
26丨案例:理解TPS趋势分析
摘要:在性能分析中,前端的性能工具,我们只需要关注几条曲线就够了:TPS、响应时间和错误率。这是我经常强调的。 但是关注TPS到底应该关注什么内容,如何判断趋势,判断了趋势之后,又该如何做出调整,调整之后如何定位原因,这才是我们关注TPS的一系列动作。 今天,我们就通过一个实际的案例来解析什么叫TPS的趋 阅读全文
posted @ 2020-08-17 16:04 肉松蛋卷 阅读(822) 评论(0) 推荐(0) 编辑
25丨SkyWalking:性能监控工具之链路级监控及常用计数器解析
摘要:在微服务横行的年代,没有链路级监控简直就是灾难。技术在不断的发展过程中,总是会有新的工具被推出来,它们存在的价值就是解决问题。链路监控工具存在的价值就是尽快找到微服务中哪一个环节是最慢的。 我们对微服务的态度究竟是怎样的? 但是在讲链路级监控之前,我需要再说一下我们对微服务的态度。 我们认为微服务性 阅读全文
posted @ 2020-08-17 16:02 肉松蛋卷 阅读(817) 评论(0) 推荐(0) 编辑
24丨Kafka:性能监控工具之队列级监控及常用计数器解析
摘要:在我看来队列服务器是最简单的一种组件了。因为队列给我们下手的机会实在是并不多。我们只是用它,如果想改变它就只能去改代码,其他的都只是配置问题。 在当前的市场中,Kafka算是用得非常火的一个队列服务器了,所以今天,我选择它来做一些解读。 虽然我在前面一直在强调分析的思路,但在这一篇中,我打算换个思路 阅读全文
posted @ 2020-08-17 16:00 肉松蛋卷 阅读(634) 评论(0) 推荐(0) 编辑
21丨MySQL:数据库级监控及常用计数器解析(下)
摘要:上一篇文章中,我们讲了有关数据库的全局分析,那么在今天的文章中,我们继续看看在数据库中,如何做定向分析。 还记得我在上篇文章中提到的工具吗?mysqlreport、pt-query-digest和mysql_exportor+Prometheus+Grafana。我们在上一篇中已经讲完了mysqlr 阅读全文
posted @ 2020-08-17 15:59 肉松蛋卷 阅读(271) 评论(0) 推荐(0) 编辑
20丨MySQL:数据库级监控及常用计数器解析(上
摘要:数据库是一个非常大的话题,我们在很多地方,都会看到对数据库的性能分析会包括以下部分。 但其实呢,以上这些内容都是我们应该具备的基础知识,所以我今天要讲的就是,具备了这些基础知识之后我们应该干什么事情。 也就是说,从性能瓶颈判断分析的角度入手,才是性能从业人员该有的逻辑。每次我分析一个性能问题时,逻辑 阅读全文
posted @ 2020-08-17 15:58 肉松蛋卷 阅读(266) 评论(0) 推荐(0) 编辑
19丨Tomcat:中间件监控及常用计数器解析
摘要:在当今Spring Cloud微服务架构盛行的时代,Tomcat仍然作为应用最广的应用服务器而存在着,所以我们不得不说一说对它的性能分析。 很多时候,我们做性能测试分析时,都会把Tomcat这类的应用弄混淆。对它的监控和分析,总是会和JDK、框架代码、业务代码混合来看,这就导致了分析上的混乱。我们应 阅读全文
posted @ 2020-08-17 15:57 肉松蛋卷 阅读(708) 评论(0) 推荐(0) 编辑
18丨CentOS:操作系统级监控及常用计数器解析(下)
摘要:I/O I/O其实是挺复杂的一个逻辑,但我们今天只说在做性能分析的时候,应该如何定位问题。 对性能优化比较有经验的人(或者说见过世面比较多的人)都会知道,当一个系统调到非常精致的程度时,基本上会卡在两个环节上,对计算密集型的应用来说,会卡在CPU上;对I/O密集型的应用来说,瓶颈会卡在I/O上。 我 阅读全文
posted @ 2020-08-17 15:55 肉松蛋卷 阅读(306) 评论(0) 推荐(0) 编辑
17丨CentOS:操作系统级监控及常用计数器解析
摘要:首先,我们前面在性能分析方法中提到,性能分析要有起点,通常情况下,这个起点就是响应时间、TPS等压力工具给出来的信息。 我们判断了有瓶颈之后,通过拆分响应时间就可以知道在哪个环节上出了问题,再去详细分析这个操作系统。这就需要用到我们的分析决策树了。 你还记得我们在第6篇文章中提到的分析决策大树吗?今 阅读全文
posted @ 2020-08-17 15:53 肉松蛋卷 阅读(569) 评论(0) 推荐(0) 编辑
16丨案例:性能监控工具之Grafana-Prometheus-Exporters
摘要:在本模块中,我将把几个常用的监控部分给梳理一下。前面我们提到过,在性能监控图谱中,有操作系统、应用服务器、中间件、队列、缓存、数据库、网络、前端、负载均衡、Web服务器、存储、代码等很多需要监控的点。 显然这些监控点不能在一个专栏中全部覆盖并一一细化,我只能找最常用的几个,做些逻辑思路的说明,同时也 阅读全文
posted @ 2020-08-17 15:50 肉松蛋卷 阅读(1028) 评论(0) 推荐(0) 编辑
15丨性能测试场景:如何进行监控设计
摘要:在性能测试中,我觉得监控是非常重要的环节。因为这是做性能分析的前提,走出这一步,才有后面的分析。 监控是性能分析承上启下的关键点。 设计监控是我们性能测试工程师必须要做的事情。当然了,仅仅设计监控是不够的,还要看懂监控数据才能分析。我们将在后面的篇幅一一拆解。 我觉得性能测试工程师也一定要自己去实现 阅读全文
posted @ 2020-08-17 15:48 肉松蛋卷 阅读(400) 评论(0) 推荐(0) 编辑
14丨性能测试场景:如何理解业务模型
摘要:性能场景中的业务模型是性能测试工作中非常重要的一部分。而在我们真实的项目中,业务模型跟线上的业务模型不一样的情况实在是太多了。原因可能多种多样,这些原因大大降低了性能测试的价值。 有人说,就是因为这样才应该直接用生产流量的方式来做嘛,这样就不用管业务模型了,直接就有生产的业务模型了。没错,只要你能通 阅读全文
posted @ 2020-08-17 15:47 肉松蛋卷 阅读(669) 评论(0) 推荐(0) 编辑
13丨性能测试场景:如何进行场景设计
摘要:我们在前面屡次强调了场景的重要性,今天终于到了要把实际场景拿出来解析的时候了。 在本篇文章中,为了保证数据的连续性,我用之前的项目资料来作明确地说明。同时为了模糊关键业务信息,以及让场景的描述更通用性,我会把所有的业务名隐去。 根据之前我们所说的,基准性能场景是为了测试出单业务的最大容量,以便在混合 阅读全文
posted @ 2020-08-17 15:42 肉松蛋卷 阅读(987) 评论(0) 推荐(0) 编辑
12丨性能场景:做参数化之前,我们需要考虑什么
摘要:在性能测试中,我们要关注的数据主要有以下几类,分别是参数化数据、监控数据和基础铺底数据。 我们今天先描述第一种参数化数据,在后面的文章中再描述其他数据。 首先我们需要了解,为什么要关注性能场景中的参数化数据呢?我以下面的两个例子说明一下。 在我的工作经历中,见过很多初级性能测试工程师不知道如何设置合 阅读全文
posted @ 2020-08-17 15:41 肉松蛋卷 阅读(422) 评论(0) 推荐(0) 编辑
11丨性能脚本:用案例和图示帮你理解HTTP协议
摘要:当前使用得最为广泛的应用层协议就是HTTP了。我想了好久,还是觉得应该把HTTP协议写一下。 因为做性能测试分析的人来说,HTTP协议可能是绕不过去的一个槛。在讲HTTP之前,我们得先知道一些基本的信息。 HTTP(HyperText Transfer Protocol,超文本传输协议),显然是规定 阅读全文
posted @ 2020-08-17 15:40 肉松蛋卷 阅读(728) 评论(0) 推荐(0) 编辑

1 2 下一页