web服务性能监控方案

简介: web服务性能监控方案

一、本地测试工具的使用

优点:

  1. 一次触发多次请求,且每个参数可动态变化,有利于弥补接口单个单元测试场景覆盖不足的问题
  2. 可以完成对接口性能的好怀定性检验,对接口性能测试作初步删选。
  3. 开发人员共同一个开发环境数据库,便于大家对所有微服务接口测试情况有一个直观全面的了解

缺陷:

  1. 本地机器性能各异,且无法控制并发线程数。导致接口测试的响应时间结果有较大波动,对接口性能好坏的程度做量化分析的结果数据并不可靠。
  2. 无法做接口的顺序链路调用测试一个模块的接口整体性能。
  3. 当接口入参依赖上一个接口的结果时,要想通过正则表达式保证一个期望的接口命中率,较为麻烦。
  4. 无法测出接口通过网关后的实际运行情况。

结论:

     本地测试工具只适用于在接口开发接口,本地完成接口单元测试及初步的性能测试,想要完成接口性能的定量分析及接口调用的全链路分析,还得依赖其他工具。

二、 开发环境接口性能测试及监控

      由于本地环境不稳定以及本地接口测试工具的短板存在,所以需要一个稳定的环境来部署其他工具弥补,这个环境最好是开发环境。

请求发送及监控工具jmeter

  开发环境的请求发送工具使用jmeter,它正好可以弥补本地测试工具的不足,如:

  1. 可以生成对一个接口发送持续且稳定的并发数,测出接口TPS在稳定状态的值。
  2. 可以做到接口的顺序链路调用,测试整个模块的TPS值。
  3. 可以根据文件获取请求参数,提高接口的命中率。

请求链路分析工具skywalking

  在请求过程中,如果发现某个接口TQS上不去,可用skywalking分析各个环节耗时。

Prometheus+Grafana监控性能指标

Jmeter监控

    可以清楚的看到Jmeter的请求总次数、失败次数、TPS在接口调试过程中的变化趋势等信息

web应用监控

    主要监控jvm使用情况和垃圾回收情况  

Mysql监控

   监控mysql的连接数、QPS、慢查询等情况

Redis监控

     主要监控redis内存、网络IO、各个数据库的key值使用情况。

web应用性能分析工具Arthas

  Prometheus+Grafana可以对web监控到jvm的使用情况和GC情况,但要分析具体原因还得借助Arthas。

 如根据cpu使用情况分析线程状态

三、 接口测试步骤总结

本地测试:

通过本地接口测试工具完成单元测试,以及对性能测试的初步删选,如果接口测试结果无法达到查询300次/s,增删改100次/s,则上开发环境调试。

开发环境调试:

  1. 在开发环境部署jmeter、skywalking、Prometheus、Grafana等监控工具并配置相关监控参数。
  2. 使用jmeter对需要上开发环境调试的接口做并发请求,观察各个中间件及web服务的cpu使用情况,找出链路的性能瓶颈。
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
6天前
|
开发框架 监控 .NET
Visual Basic的Web服务和REST API开发指南
【4月更文挑战第27天】本文探讨了使用Visual Basic(VB.NET)构建Web服务和RESTful API的方法。首先介绍了Web服务的基础和REST API的概念,然后阐述了.NET Framework与.NET Core/.NET 5+对VB.NET的支持,以及ASP.NET Core在Web开发中的作用。接着,详细讲解了创建RESTful API的步骤,包括控制器与路由设置、模型绑定与验证,以及返回响应。此外,还讨论了安全措施、测试方法、部署选项和监控策略。最后强调,VB.NET开发者可以通过ASP.NET Core涉足现代Web服务开发,拓宽技术领域。
|
8天前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
2月前
|
网络协议 Java Nacos
nacos常见问题之在web界面 上下线服务时报错 400如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
34 0
|
2月前
|
监控 Serverless 测试技术
Serverless 应用引擎常见问题之做的web服务计费如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
410 3
|
2月前
|
负载均衡 Java 中间件
使用Go语言构建高性能Web服务
Go语言作为一种快速、高效的编程语言,其在构建高性能Web服务方面具有独特优势。本文将探讨如何利用Go语言开发和优化Web服务,以实现更高的性能和可伸缩性。
|
3天前
|
缓存 监控 测试技术
【Go语言专栏】使用Go语言构建高性能Web服务
【4月更文挑战第30天】本文探讨了使用Go语言构建高性能Web服务的策略,包括Go语言在并发处理和内存管理上的优势、基本原则(如保持简单、缓存和并发控制)、标准库与第三方框架的选择、编写高效的HTTP处理器、数据库优化以及性能测试和监控。通过遵循最佳实践,开发者可以充分利用Go语言的特性,构建出高性能的Web服务。
|
4天前
|
编解码 前端开发 JavaScript
【Web 前端】移动端适配方案有哪些?
【4月更文挑战第22天】【Web 前端】移动端适配方案有哪些?
|
10天前
|
监控 Shell
Shell脚本监控WEB服务是否正常
Shell脚本监控WEB服务是否正常
|
15天前
|
JSON API 数据库
解释如何在 Python 中实现 Web 服务(RESTful API)。
在Python中实现Web服务(RESTful API)涉及选择框架(如Flask、Django、FastAPI),定义路由及处理函数(对应HTTP请求方法),处理请求,构建响应和启动服务器。以下是一个使用Flask的简单示例:定义用户列表,通过`@app.route`装饰器设置GET和POST请求处理函数,返回JSON响应,并用`app.run()`启动服务器。实际API会包含更复杂的逻辑和错误处理。
15 1
|
1月前
|
数据采集 Java API
python并发编程: Python使用线程池在Web服务中实现加速
python并发编程: Python使用线程池在Web服务中实现加速
18 3
python并发编程: Python使用线程池在Web服务中实现加速