采集系统上云(企业应用系统上云,如何在云端利用云的优势进行性能优化)

优采云 发布时间: 2022-03-10 02:30

  采集系统上云(企业应用系统上云,如何在云端利用云的优势进行性能优化)

  应用系统上线运行后,随着系统数据量的不断增长和访问量的不断增加,系统的响应速度通常会越来越慢,尤其是在日常高峰的情况下,往往无法满足业务需求,甚至出现应用服务中断的现象。,给企业造成巨大的品牌损失和经济损失。大量数据显示,核心体验响应时间每增加 0.1 秒,就会导致收入下降 1%。当企业应用系统上云时,如何利用云的优势在云端进行性能优化是一个值得深入分析的关键问题。

  性能优化的价值与策略

  1、性能优化值

  性能是应用程序最重要的指标,除非有选择,否则用户不会忍受缓慢的应用程序或 网站。大量数据显示,核心体验响应时间每增加 0.1 秒,就会导致收入下降 1%。

  应用系统上线运行后,随着系统数据量的不断增长和访问量的不断增加,系统的响应速度通常会越来越慢,尤其是在高峰期,往往无法满足业务需要,甚至应用服务中断。造成巨大的品牌损失和经济损失,因此性能优化至关重要。

  通过性能优化,可以用更少的硬件资源来支持更多的业务开发,从而达到节省硬件成本的目的;同时可以在资源有限的情况下提高系统的响应能力,带来更好的用户体验。用经验促进业务增长。

  2、性能优化策略

  对于应用系统来说,用户需要从浏览器经过很多环节向数据库发送请求,才能完成事务操作。如果系统响应慢,需要分析请求经过的所有环节,排查可能存在的性能瓶颈,定位问题所在。

  排查瓶颈的方法通常是查看请求处理的各个环节的日志,分析哪个环节的响应时间不合理,超出预期。然后查看监控数据,分析影响性能的主要因素是CPU还是内存、磁盘、网络等基础设施资源。问题,或者架构设计的问题,或者SQL语句慢的问题。

  定位性能问题的具体原因后,进行针对性的性能优化。

  云性能优化系统

  1、性能优化系统

  性能优化,简而言之,就是在不影响系统正确性的情况下,让系统运行得更快,用更少的时间完成特定的功能。

  性能优化有很多维度。一般来说,性能优化可以从以下五个方面进行:资源层、架构层、应用层、数据库层、中间件层。性能优化系统如下:

  

  2、资源层优化

  云资源层的优化包括云资源的横向和纵向扩展。资源层优化的依据可以来自云监控的量化指标数据。

  云监控可以实时监控云资源的动态指标,是所有云产品监控管理的主要入口。您可以通过云监控查看最完整、最详细的监控数据。云监控可以实时监控云服务器、云数据库、负载均衡等云产品,提取云产品的关键指标,并以监控图表的形式展示。使用云监控全面了解资源使用情况、应用程序性能和云产品运行状况。

  横向扩展就是增加云服务器、云数据库等实例的数量。垂直扩容就是升级云服务器、云数据库等云资源的规格和配置,比如CPU、内存、磁盘、带宽等参数的配置。从解决资源瓶颈的角度优化系统访问性能。

  3、架构层优化

  不合理的系统架构设计也可能导致系统性能问题。比如在架构设计上,没有考虑读写分离、数据库分库分表、动静分离、CDN加速、缓存加速、弹性伸缩等。

  读写分离和数据库分库分表解决了数据库访问性能问题。在云端实现读写分离非常方便。创建只读实例后,在应用中配置读写分离地址,自动转发写请求。对于主实例,读取请求会自动转发到每个只读实例。

  动静分离、CDN加速、缓存解决快速读取静态文件或热点数据的问题,如图片、视频、热门商品、库存等,企业上云时,需要使用一些成熟的尽可能多的云原生解决方案。优化访问性能问题的设计级别。

  

  弹性伸缩解决了应用服务器自动扩容的问题。通过提前配置伸缩规则和策略,在业务需求增加时自动添加云服务器实例,保证计算能力,避免访问延迟和资源过载。

  4、应用层优化

  应用层优化的关键是首先快速诊断出应用的问题瓶颈。

  互联网业务的快速发展带来了越来越大的流量压力,业务逻辑也越来越复杂。传统的独立应用程序已不能满足需求。越来越多的网站或系统逐渐采用分布式部署架构。

  同时,随着Spring Cloud/Dubbo等基础开发框架的不断成熟,越来越多的企业开始将应用架构按照业务模块进行垂直拆分,形成更适合团队协同开发的微服务架构和快速迭代。

  分布式微服务架构在开发效率上领先,但给传统的监控、运维、诊断技术带来了巨大挑战。主要挑战包括:

  难点定位:

  微服务分布式架构一个业务请求通常经过多个服务/节点后才会返回结果。一旦请求出现错误,往往需要反复查看多台机器上的日志来初步定位问题。简单问题的故障排除往往涉及很多团队。

  难以发现瓶颈:

  当用户反映系统卡死时,很难快速找出瓶颈在哪里:是用户终端到服务器的网络问题,是服务器负载过高响应变慢,还是数据库压力太高?即使定位到导致卡顿的环节,也很难在代码层面快速定位到根本原因。

  结构难以梳理:

  在业务逻辑变得更加复杂之后,很难从代码层面梳理出一个应用依赖哪些下游服务(数据库、HTTP API、缓存),以及哪些外部调用依赖于它。理清业务逻辑、治理架构和规划容量也变得更加困难。

  通常需要性能压力测量工具(如PTS)和应用实时监控服务(如ARMS)等工具,从前端、应用、业务定制等维度进行链路跟踪,实现完整的调用链路恢复和呼叫请求量。统计、链路拓扑和应用依赖分析等。链路追踪可以帮助快速分析和诊断分布式应用架构中的性能瓶颈,提高微服务时代的开发和诊断效率。

  定位瓶颈问题后,进行针对性的优化工作,如优化慢SQL语句、优化调用报错程序代码、优化调用异常API等。用性能压测工具重新施压,通过压测结果进一步分析系统瓶颈,迭代优化应用。

  5、数据库优化

  影响数据库系统性能的主要因素有:系统的硬件配置、数据库文件的物理分布、数据库实例的参数、数据库的物理设计、应用的SQL语句。

  数据库性能优化需要以下数据内容采集:

  系统软硬件环境:包括服务器的操作系统设置、硬件配置、网络配置、软件环境、启动选项、进程信息、性能信息、磁盘使用情况等。

  硬件运行:包括CPU、内存、磁盘、网络的运行数据。

  数据库实例的配置:实例配置参数。

  数据库配置:包括恢复模式、自动收缩、空间增长等信息。

  数据库磁盘使用情况:包括数据库大小、表大小、记录数、索引大小、占用空间等。

  索引和分片:包括表上的索引、索引的分片、索引的维护计划等。

  SQL语句执行:包括SQL语句执行时间、启动时间、数据库、语句内容、死锁、阻塞等。

  应用运行状态:包括系统高峰时段、夜间数据库维护任务、用户上报业务慢、系统运行特点等。

  数据库性能的主要优化项目如下图所示:

  

  6、中间件优化

  在信息系统中,许多性能问题都是由不起眼的应用程序中间件引起的。应用程序中间件之所以诞生,是为了帮助应用程序编码人员处理频繁发生的与业务逻辑关系不大但必须处理的事情,比如处理应用程序与数据库的关系,设置打开多少个会话用于处理。客户端请求、会话超时等。

  然而,在享受便利的同时,应用中间件也将成为系统性能问题的制造者。开发人员和测试人员经常忽略中间件本身对性能的影响,包括事务吞吐量限制和响应时间。,交易成功率的影响等等。

  中间件优化的目标是缩短中间件花费的时间(提升用户体验),提高整个应用服务器的吞吐量。中间件优化,调整什么参数,一定要了解它的含义,原理,调整后的收益和风险,最好能把N个参数包在一个整体的脑海里。

  高优先级:调整JVM虚拟机的JDBC连接池、线程池、堆大小。

  中优先级:会话数、垃圾回收 GC 策略。

  还有缓存,数据源语句缓存大小。

  配置不当也会导致中间件处于挂起状态。比如某类资源(session或jdbc)被应用完全占用,短时间内不会释放,从而无法执行新的请求,导致假死。这种情况下,需要做超时放弃的参数配置。

  关于性能优化的进一步思考

  性能优化是一项复杂的系统工程。首先要定位性能瓶颈,然后对云资源、系统架构、应用、数据库、中间件等进行综合分析和优化。性能优化的最终目的是提升用户体验。离开这个目的,在技术上追求所谓的高性能,是浪费钱,没有任何意义。

  随着系统数据量、访问用户数量的不断增加以及系统功能的不断迭代,系统需要不断优化性能。性能优化是一场持久战。只有这样,用户才能有更好的访问体验,支持业务增长。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线