ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 第三章

第三章

原创 Linux操作系统 作者:to_be_dba 时间:2012-12-11 09:45:49 0 删除 编辑

第三章  性能调优方法

性能问题通常表现为吞吐量不够、响应时间无法接受或者两者都有。范围可能是应用模块,也可能是整个系统。
调优的目标应该是业务方面的(如用户响应时间快了多少),而不是系统统计信息。

调优步骤:
1.初始化检查
获得客观的问题描述
获得正常运行和出现问题时完整的操作系统、数据库和应用数据
获取操作系统对应的所有机器的性能。检查是否有满载或超负荷现象,是否有报错信息。
2.检查是否有数据库中最有可能出现的10大错误,具体见‘automatic performance diagnostics’
3.概括症状,理解性能问题
4.尝试解决方法,尽量每次只改变一个状态,或者改变多个状态时确保彼此分开。
5.证明修改产生了预期的结果,查看性能提高的程度。若未提高,查找更多的瓶颈继续调优


关于系统慢的解决思路:
1.单用户在空载或业务不忙时是否慢?(速度可接受?)
如果也不能接受的话,可能是代码或设计的问题,获取执行计划、跟踪文件等信息,和开发人与一起检查数据、索引、事务设计和潜在的工作。
2.cpu使用率多高?
如果超过40%,检查操作系统网络传输、paging、swapping、process thrashing
再次检查CPU,看是否有备份、文件传输、打印等事务争用cpu资源
检查使用cpu最高的sql
在v$sql、v$sqlstats中提供了cpu数据
如果以上问题都检查以后仍未解决,检查非高峰时段的CPU使用率或使用性能更好的机器
3.系统性能差,但CPU资源未充分使用
获取wait_event,找到调整重点。如果未发现需要不正常,问题可能在数据库以外。
减少等待事件的方法包括应用sql的修改以及数据库参数调整。

oracle系统的十大错误
以下问题应该避免同时出现
1.连接管理问题
每个数据库操作都去连接和断开连接,这通常是中间件问题。通常无法在数据库调整
2.cursors和共享池的误用
3.sql不合理
4.初始化参数不合理
5.数据库i/o获取错误
6.重做日志设置问题
7.由于空闲列表、空闲列表组、事务槽不足或缺少回滚段造成的缓冲区数据块串行。
一般是在插入操作比较多、或数据块大小是8K、或大量活动用户、或很少回滚段的系统中。
可以通过自动段空间管理和自动回滚段管理来解决此问题。
8.大表的全扫描 一般是事务设计不合理、sql编写的不合理或索引失效造成的
9.大量的递归sql(sys sql)
通过本地管理表空间可以减少对数据字典的调用,减少递归sql
10.迁移问题
由于迁移后索引无效、统计信息太旧等原因造成性能问题。


紧急处理方案:
在需要快速解决问题时使用
1.询问症状 发生问题前改什么了
2.检查各个组件占用硬件资源状况。cpu、内存、磁盘空间、网络被哪些组件占用了
3.确认数据库是CPU利用率高还是等待时间长
如果是利用率高,从v$sess_time_model得到是哪个会话在占用CPU
检查v$sesstat和v$sqlstats,获得哪些会话或语句在数据库级占用太多缓存
执行计划的改变造成的sql执行问题,很难定位
不合理的初始化参数设置
由于代码或组件升级造成的算法问题

如果是等待时间多,从v$session_wait获得原因。如果问题消失了,也可以从v$active_session_history得到历史信息。
4.采取措施使系统稳定住,如关闭应用的某些功能或者限制应用的负载
5.确认系统已经稳定住,并按照上面的方法排除故障

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26451536/viewspace-750879/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 第二章
下一篇: 第四章
请登录后发表评论 登录
全部评论

注册时间:2011-11-23

  • 博文量
    170
  • 访问量
    484876