性能调优,看过的都说会了...

这篇具有很好参考价值的文章主要介绍了性能调优,看过的都说会了...。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在展开今天的内容之前,我们先来看一下,是不是任何一个测试都可以学习性能测试。

如果说需求、开发、DB、运维、测试是单一一门学科,那么性能就是综合学科,它包含了需求分析、DB、开发、测试、运维的所有学科。

所以说,学习性能测试,你前期需要懂的是需求分析、DB设计、程序开发、自动化测试、运维。

所以今天的内容是性能分析的一大重点,也是一大难点!

WebServer服务优化

对于Web服务性能优化的方向,一般是:

  • 页面静态化:比如访问的页面,先进行静态化后提供访问,减少DB负担;

  • 减少页面的Size:

    减少图片尺寸、CSS合并、JS精简等;

    客户端缓冲图片、样式等;

  • 去掉无用请求与数据;

  • 对数据做异步处理(非常关键);

  • 只能DNS及CDN加速,让响应数据离用户更近,规避缓解网络瓶颈。

程序优化

程序优化是治本的方法,也是我们大部分来解决性能问题的一个措施。

当前性能测试大部分都是在SIT(集成测试)测试完成后再进行的,如果出现严重性能问题、修改代码等代价太大,这不是熬几个通宵的事情,有可能看不到第二天的太阳。

所以为了规避这种问题,所以我们要提前做打算,这就体现了一个测试架构师的重要性。

顺序是:先架构后程序(即先整体后个体)。

系统架构的选择

例如:SSH(Struts、Spring、Hibernate)架构,应该是在当下最流行的MVC模型,SSH为我们提供了明晰的层次结构,各层协同完成业务实现,即简化了设计过程,也加快了程序交付进程。

凡事有好的一面,必定有短板:如大型的业务系统,如果我们把大量的数据从数据库取出来,然后利用程序进行分析计算。

不过,有没有想到会增加网络传输,而且在程序中进行处理有可能并不是最佳解决方案。想想,如果把这些大数据量放在数据库计算,是不是就非常的轻松+愉快呢~

所以,老话说得好,任何事情都要量力而行。选择相对来说最优的方案,就是最佳方案!

程序优化

低效代码优化,不包含系统架构,就是纯粹的业务逻辑及算法低效。

如:逻辑混乱、调用继承不合理、内存泄露等,有问题,咱就得有对策,解决方法:

表单压缩

减少网络传输量。

局部刷新

页面中采取局部内容获取方式,减少向服务器请求次数。

仅取所需

只向服务器请求必要内容,只向客户端发送必要表单。

逻辑清晰

不做错误及多余调用,资源请求后能释放。

谨慎继承

对系统架构了解,特别是一些基础类,公共组件,合理利用。

程序算法优化

试着分析程序,是否需要用算法来提高程序效率(如果不会算法,那就别勉强了)。

批处理

对大量的数据处理,最好能做成批处理:好处那是大大的。

延迟加载

大对象的展示,可以做延迟加载的方式,层层递进显示明细。

防止内存泄露

内存泄露,是由于对象无法回收造成的,特别需要注意的是长生命周期的对象。

减少大对象使用

防止在程序中声明及实例化大对象,不能为了方便而设计出大对象。大对象太大,小体格的吃不消。

防止争用死锁

一般出现在线程同步的场景。

索引

编写合理的SQL,尽量利用索引。

存储过程

为了减少数据传输到应用层面,一般会在数据库层面利用存储过程来完成数据逻辑的运算,只需要回传少量的结果给应用层。

内存分配

合理分配数据库内存,如PGA与SGA设置;不对大数据提供orderby操作,避免PGA被占满。

并行

使用多线程或线程来处理任务。

异步

如用MQ(消息中间件)来解耦系统之间的依赖关系,减少阻塞。

使用设计好的模式来优化程序

选择合适的IO模式

如NIO、AIO等。

配置优化

这作为一个老码农,应该非常准确闪现出JVM、连接池、缓存机制、CDN等优化手段。

JVM配置优化

合理分配堆与非堆的内存,配置适合的内存回收算法,提高系统服务能力。

连接池

数据库连接池可以节省建立链接与关闭链接的资源消耗。

线程池

通过缓存线程的状态来减少新建线程与关闭线程的开销,一般都是中间件进行配置,如在Tomcat的server.xml文件中。

缓存机制

通过数据的缓存来减少磁盘读写的压力,缩小存储与CPU的效率差。

数据库连接池优化

数据库连接池存在的意义就是让链接复用。通过建立一个数据库连接池(缓冲区)以及一套链接使用、分配、管理策略,使得该连接池中的链接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。

以上没有唠到重点,我们无非关注这三点:

  • 连接池的参数配置;

  • 连接池配置多少合适:

    按需分配,够用就行!小窍门:一般情况数据库连接池的数量<中间件线程池的链接数量;

  • 监控连接池。

DB优化

DB的优化思路就是一少三减:

  • 少做

  • 减少请求次数

  • 减少数据传输量

  • 减少运算量(查询、排序、统计)

业务流程优化

架构的好坏直接影响到整个系统的运行,所以,一个好的架构师,是一个系统的基石。

这种架构优化留给架构师吧,不然他们干啥~

结构优化

结构优化就好比我们人类进化是一样一样的。由最开始的单机结构已经无法满足日渐增长的业务量,所以架构的演变就这样开始了:单机结构→集群结构→分布式结构。

下面我们就来瞅瞅,这些结构的构成图。

单机结构

性能调优,看过的都说会了...

集群结构

性能调优,看过的都说会了...

分布式结构

性能调优,看过的都说会了...

调优,是一个复杂学科,没有学霸的智商,得有学渣不要脸的劲,才能成为一个性能专家。

切记,团队的支持,是最重要的,切勿单打独斗,因为你是斗不过的……

归根结底,我们分析调优为了啥,就是在客户发送请求的时候,我们以最快的速度响应给客户。

最后如果你想学习自动化测试,欢迎加入笔者的交流群:735745871,里面会有很多资源和大佬答疑解惑,我们一起交流一起学习!文章来源地址https://www.toymoban.com/news/detail-632875.html

到了这里,关于性能调优,看过的都说会了...的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ES 性能调优,这可能是全网最详细的 Elasticsearch 性能调优指南

    性能调优是一件大而细的活儿。技术开发没有银弹,也就是本质上是没有所谓可应对任何场景的通用\\\"最优配置\\\"的。如果有,那么出厂何必不直接给出呢?所以理解每一项优化配置的含义很重。在当前情况下为最优配置,但是换一种场景就未必了。 废话不多说,直接上干货!

    2024年02月03日
    浏览(56)
  • Go性能调优及相关工具使用(四)——性能调优工具pprof的使用

    本堂课的知识要点有哪些? 1、性能发现工具pprof 2、性能调优案例 1、性能调优简介 性能调优原则: 要依靠数据不是猜测 要 定位最大瓶颈 而不是细枝末节 不要过早优化 不要过度优化 2、性能发现工具pprof 说明: 1、希望知道应用在什么地方耗费了多少CPU、Memory 2、pprof是用于

    2024年02月08日
    浏览(44)
  • 【C/C++ 性能优化】循环展开在C++中的艺术:提升性能的策略与实践

    在讨论C++中循环展开的具体实现之前,了解其背后的动机和基本概念是非常重要的。循环展开,作为一种优化技术,主要用于减少程序中循环的开销,从而提高程序的执行效率。本章将深入探讨循环展开的动机、好处以及可能的缺点。 循环是编程中常用的结构,用于重复执行

    2024年03月12日
    浏览(44)
  • openGauss学习笔记-271 openGauss性能调优-TPCC性能调优测试指导-测试MOT-TPCC性能

    本章节主要介绍openGauss数据库内核基于鲲鹏服务器和openEuler操作系统,为了达到最佳TPMC性能所依赖的关键系统级调优。 271.1 TPC-C简介 TPC-C基准是衡量联机事务处理(OLTP)系统性能的行业标准基准。它基于一个复杂的数据库和许多不同的事务类型。这些事务类型在此基准上执

    2024年04月26日
    浏览(43)
  • 【kafka性能测试脚本详解、性能测试、性能分析与性能调优】

    Apache Kafka 官方提供了两个客户端性能测试脚本,它们的存放位置如下: 生产者性能测试脚本:$KAFKA_HOME/bin/kafka-producer-perf-test.sh 消费者性能测试脚本:$KAFKA_HOME/bin/kafka-consumer-perf-test.sh kafka-producer-perf-test.sh 支持测试的性能指标包括:吞吐量(throughput)、最大时延(max-latenc

    2024年02月04日
    浏览(64)
  • SAP ABAP 代码调优检查工具及性能调优

    一:代码检查工具 ABAP 测试仪表盘(ATC) 所有检查工具, 豁免处理, 结果存储的中心 代码检查器 (SCI) 提供给客户,合作伙伴和SAP的做代码相关检查的开放式架构 扩展程序检查(SLIN) 扩展的代码检查,用来分析源代码 SAP NetWeaver 应用服务器,附加组件的代码漏洞分析器 安全漏洞的

    2024年02月10日
    浏览(45)
  • Elasticsearch性能调优

    centos系统默认的是1024个文件句柄。如果文件句柄用完了,这就意味着操作系统会拒绝连接,意味着数据可能丢失,在ElasticSearch大量请求的情况下,1024个文件句柄数量是不够的,可以改成655360。 内存交换到磁盘对服务器性能来说是致命的。 内核参数vm.swappiness控制换出运行时

    2023年04月09日
    浏览(34)
  • elasticsearch 读写性能调优

    elasticSearch 读写性能调优 elasticSearch作为java后端和大数据核心的技术之一,肯定在面试当中它的性能调优肯定是要问的,看了好多人整理的性能调优方案,确实受益匪浅。自己整理一份简单的性能调优,能应付面试就行了。哈哈哈!!! 一、写入调优 增加flush时间间隔,目的

    2024年02月13日
    浏览(41)
  • 06-JVM 性能调优

    在高性能硬件上部署程序,目前主要有两种方式: 通过 64 位 JDK 来使用大内存; 使用若干个 32 位虚拟机建立逻辑集群来利用硬件资源。 堆内存变大后,虽然垃圾收集的频率减少了,但每次垃圾回收的时间变长。 如果堆内存为 14 G,那么每次 Full GC 将长达数十秒。如果 Full

    2024年02月08日
    浏览(39)
  • postgresql 性能调优

    性能调优是为了提高 PostgreSQL 数据库的性能和响应速度。下面是一些常见的 PostgreSQL 性能调优技巧: 定期进行数据库维护:对数据库进行定期的备份、清理和优化操作,包括 VACUUM、ANALYZE、REINDEX 等,以保持数据库的健康状态, 定期进行数据库维护是保持 PostgreSQL 数据库健康状

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包