暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

系统优化工作中的一些常见问题

白鳝的洞穴 2020-03-09
1474

1、整体优化项目的实施方法是什么样的?各个实施阶段的时间该如何分配?

  整体优化项目不同于一般的优化工作。一般的优化工作是为了解决某个特定的问题而进行的优化。整体优化是为了从根本上优化系统,无论系统是否已经暴露出来的问题还是隐含的问题,都需要进行分析,并找出解决方案。整体优化更侧重于今后系统的长期发展。一般整体优化包含以下环节:

  A)数据采集:对系统现状进行采集,并通过业务部门访谈,了解系统中可能存在的问题点,作为重点优化方向。大约1周时间

  B)基线分析:根据第一阶段采集的信息进行分析,获得系统的现状基线,大约2-3

  C)优化方案设计:根据前面的工作成果,设计优化方案,包括中间件优化方案、操作系统优化方案,数据库系统级优化方案,数据架构优化方案等。SQL优化方案等大约一周时间

  D)优化方案评审:甲方,优化小组,开发团队一起评审优化方案。

  E)优化实施方案编写:根据通过评审的优化方案,编写实施方案。1-2

  F)实施方案评审:甲方,优化小组,开发团队一起评审实施方案

  G)优化实施:根据实施方案进行修改操作

  H)实施后保障:实施后的3-5天,对系统进行保障,同时采集优化后的信息,形成优化后的基线数据

  I)优化效果评估:根据实施结果,评估优化后的效果

  J)文档编写:编制各类文档和用户维护手册。一周时间

  K)培训:培训最终用户,使之掌握长期维护该系统的技术,并移交技术文档

 

 

2、优化的效果如何评估?

优化效果的评估可以从几方面进行:

A)系统资源的使用情况:比如CPU,IO等的性能指标

B)业务人员的感知

C)事先采集到的业务系统使用情况,与优化后比对

D)对于较为繁忙的,存在性能问题的系统,可以看某些典型业务数据产生的量

E)找到典型业务的SQL,看执行时间的比较,以及执行数量的变化

F)看数据库AWR中的一些重要指标

G)平均每秒事物数这个指标评估性能提升与否不够科学,因为这个指标和COMMIT数量有关。

 

3、整体优化项目主要涉及哪几个方面,应该关注哪些要点?

  整体优化涉及到以下几个方面:

  A)操作系统的性能
  B)存储性能
  C)数据库服务器性能
  D)应用服务器性能
  E)数据库总体性能
  F)数据架构的合理性
  G)数据库碎片情况
  HSQL性能情况
  I)系统架构合理性,是否存在单点故障

 

4、如何分析系统中存在的热快冲突问题,解决热快冲突问题的主要技术手段有哪些?

 

   查找热块冲突可以通过v$session(v$session_wait)视图或者ASH相关视图(10g以后),查看buffer busy wait的参数,从而找到热块对应的数据库对象是什么。也可以从V_$SEGMENT_STATISTICS中查找BUFFER BUSY WAIT等待比较多的对象,或者从AWRTOP SEGMENTS里面去找。

   解决热块冲突的方法:

  A)减小BLOCK SIZE
  B)使用HASH分区表
  C)加大PCTFREE,INITRANS等表参数
  D)使用HASH CLUSTER
  E)使用反转键索引
  F)加大DB CACHE,减少物理读
  G)修改应用

 

5、如何分析RAC性能问题,RAC性能优化的技术手段有哪些?

分析RAC性能主要看以下几个方面:

A)GES/GCS性能指标是否在合理范围
B)RACINTERCONNECT流量是否在合理范围
C)RAC相关的等待是否合理(平均响应时间是否合理,占系统的比例是否比较低)
D)是否经常会由于GC相关等待导致系统HANG住或者变慢


常用的解决手段:

A)优化应用,减少热块冲突
B)减少TX锁的平均等待时间
C)提高DB CACHE命中率,减少GC消息的数量
D)使用较快的网卡,或者使用绑定网卡,提高网络吞吐能力
E)适当的应用分区,不同节点跑不同的应用
F)使用分区表技术,减少数据冲突
G)优化表结构和索引结构,减少热快冲突

 

 

6、优化过程中,如何分析IO性能问题,解决IO性能问题的技术手段有哪些?

分析IO问题,可以重点看AWR报告中的db file sequential read,db filescattered read,后台进程的db fileparallel write,log file parallel writeIO指标,以及检查数据库每秒的IO吞吐量。在操作系统层面可以看磁盘的avwait,avservavqueue指标,看看是否存在性能问题。另外vmstat wio指标也可以用来分析IO

解决IO问题的技术手段:

A)加大DB CACHE,减少IO吞吐量
B)优化SQL,减少全表扫描
C)使用更多的硬盘
D)提高IO通道带宽(比如用多路径或者用更大的IO通道)
E))使用转速较快的硬盘
F)IO分散到更多的硬盘上
G)做历史数据归档,减少生产库的数据量
H)减少REDO的量

 

7、优化过程中,如何分析CPU的使用情况,优化CPU资源的手段有哪些?

分析CPU可以通过操作系统监控数据,不过要注意的是CPU使用率在高负载系统上可能不一定具有代表性。如果系统的CPU总是100%,那么vmstat看到的可运行队列(r)根据有代表性,看r的数量和CPU核数的对比更为准确。在AWR报告中,可以计算出系统在报告期间的平均CPU使用率。

 优化CPU的常用手段:

A)优化SQL,减少全表扫描
B)优化SQL,使用更合理的表连接手段,减少SQLBUFFER GET
C)减少操作系统中不必要的后台服务进程
D)减少闩锁争用
E)归档历史数据,减少生产库的数据量
F)将计算量大的操作放到非业务高峰
G)REBUILD碎片化比较严重的索引

 

8、如果优化过程中发现LOG FILE SYNC等待比较严重,如何分析与解决这个问题?

解决LOG FILESYNC的方法:

A)提高REDO LOG文件的访问性能,使用更好的磁盘
B)加大LOG BUFFER的大小(对于REDO量较大的系统有效)
C)使用合理的REDO LOG文件大小,过小的REDO LOG文件导致过于频繁的日志切换,会加大这个等待
D)在允许的情况下使用异步提交模式
E)LGWR绑定到某个CPU上,提高LGWR的写入性能
F)某些LOG FILE SYNC等待是BUG引起的,打补丁去解决
G)通过批量提交,BULK操作、NOLOGING操作等方式减少高峰期REDO量
H)大REDO量批操作错峰执行

 

9、如果优化过程中,发现某条SQL占用的资源比较多,如何分析和优化这条SQL

A)首先检查是否存在多表连接,如果存在多表连接,要分析每个表的过滤条件过滤出来的结果集的大小
B)根据每个结果集的大小,判断每个解决级产生的执行计划是否合理(单表访问是否合理),如果不合理,看看能否通过调整索引等手段解决
C)根据情况,首先两两连接,看看表连接的顺序是否合理,是否在最早的连接中过滤掉了更多的数据。将多表连接转换为多次双表连接
D)针对两张表的连接情况,分析连接的方式是否合理(NL,hash,merge,笛卡尔等)

 


最后修改时间:2020-03-09 14:57:46
文章转载自 白鳝的洞穴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论