单机性能分析与调优

一、程序优化

  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,进行条带化、读写分离、减少热点等。

原文地址:https://www.cnblogs.com/wu-wu/p/10100078.html