zoukankan      html  css  js  c++  java
  • 单机性能分析与调优

    一、程序优化

      1、表单压缩:压缩表单,减少网络的传输量达到提高响应速度的效果。

      2、局部刷新:页面中采取局部内容获取的方式,减少向服务器的请求。

      3、仅取所需:只向服务器请求必要的内容,只向客户端发送必要的表单内容,减少网络传输,减轻服务器负担。

      4、逻辑清晰:程序逻辑清晰方便维护,方便分析问题;不要做多余的调用,资源请求后能够释放。

      5、谨慎继承:开发过程要对系统架构了解,特别是一些基类、公共组件,合理利用,减少大对象产生的可能。

      6、程序算法优化:试着分析程序,释放需要算法来提高程序的效率,比如我们可以二分法来做物料计划。

      7、批处理:对于大批量的数据处理,最好能够批处理,不会因为单次操作而影响系统的正常使用。

      8、延迟加载:对于大数据的展示可以采用延迟加载的方式,层层递进的显示明细。比如我们分页显示列表内容,往往我们只显示主表的内容,附表的内容在查看明细时采取请求。

      9、防止内存泄露:内存泄露是由于对象无法回收造成的,特别是一些长生命周期的对象风险较大。比如session,用户退出时并没有更新session状态。

      10、减少大对象引用。

      11、防止争用死锁。

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

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

      14、内存分配:合理分配数据库内存,比如PGA与SGA的设置。

      15、并行:使用多个进程和线程来处理任务,比如oracle的并行查询,Tomcat的线程池。

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

      17、使用好的设计模式来优化程序,比如用回调来减少阻塞,使用监听器来阻塞依赖。

      18、选择合适的IO模式。

    二、配置优化

      1、jvm配置优化:合理分配堆与非堆得的内存,配置适合内存的会所算法,提高系统服务能力。

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

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

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

    三、数据库连接池优化

      关注点:1)、线程池的参数配置,2)、连接池配置多少连接,3)、监控线程池

    四、DB优化

      1、优化物理结构,数据逻辑设计与物理设计要科学高效,比如分区、索引建立、字段类型及长短、冗余设计等。

      2、共享SQL、绑定变量、降低高水位。共享SQL、绑定变量旨在减少SQL语句的编译分析时间;降低高水位旨在减少遍历范围,提高查询效率。

      3、查询器优化,特殊情况调整执行时间。指定的执行计划加快查询查找速度。比如连接查询时指定驱动表,减少表的扫描次数。

      4、单条SQL语句优化,对单SQL进行优化分析,比如查询条件选择索引列。

      5、并行SQl,对数据量巨大的表的数据遍历,用多个线程分块处理。

      6、减少资源争用,可以提高IO效率减少响应时间从而提高吞吐量来缓解争用,比如物理拆分吧热点数据分布在不同表空间。

      7、优化内存、减少物理IO访问。

      8、优化IO,进行条带化、读写分离、减少热点等。

  • 相关阅读:
    数据库基础理解学习-Mysql
    玫瑰花小制作分享-JavaScript(七夕专属浪漫)
    爬虫探索Chromedriver+Selenium初试
    Python 数据结构理解分享
    Python 实用第三方库安装方法
    Python安装-Pycharm+Anaconda
    oracle父子级查询数据树结构
    如何查看class文件的编译jdk版本号
    PL/SQL developer 11.0注册码
    linux 下tomcat出现 Native memory allocation (malloc) failed to allocate 1915224064 bytes for committing reserved memory问题
  • 原文地址:https://www.cnblogs.com/wu-wu/p/10100078.html
Copyright © 2011-2022 走看看