您的位置:首页 > 其它

部分性能数据分析的思路

2016-03-01 16:33 183 查看
数据库调优重点:

1、SGA 、PGA 调整

2  redo.log的大小和路径

3.数据文件的自增长

数据库一般建议SGA大小为应用服务器内存的40%,PGA的大小与数据库的连接有关,

数据操作频繁但数据量不大的情况下,每个用户大约占3M-4M.

应用服务器调优重点:

1.线程池

2.连接池

3.JVM参数,中间价参数

4.日志

定位分析方法:

1.数据库CPU高

A.找出消耗PCU的进程<pid> TOP

B.查询问题进程的信息 ps -ef | grep <pid>  

C.进入数据库查询进程使用的SQL

SELECT   /*+ ORDERED */        

 sql_text     FROM v$sqltext a   

 WHERE (a.hash_value, a.address) IN

 (     SELECT DECODE (sql_hash_value,     0, prev_hash_value,      sql_hash_value     ),     

       DECODE (sql_hash_value, 0, prev_sql_addr, sql_address)   FROM v$session b  

       WHERE b.paddr = (SELECT addr   FROM v$process c        WHERE c.spid = '&pid'))

数据库查询可能缺少索引 ,数据库可能配置不对

应对方式:抓快照

2.应用服务器CPU不高

 可能有线程锁,看看JVM线程在干什么?

应对方式: kill -3<pid>

  可能有异常,大量错误信息输出到NOHUP.OUT文件中,有问题

3.TPS抖动得厉害,一会为0,一会很高,网络占用非常高

  有可能是线程锁,也有可能是网络瓶颈

4.TPS稳定下跌,看走势随着时间拉长有可能会跌倒0,

  有可能是内存溢出,建议把内存调小,间隔时间打印DUMP,通过工具分析找到瓶颈

5.看线程堆栈,

 A.当前大量的线程在忙什么?有没有线程等待?

 B.通过JCONSOLE 查看JVM中调用最多的方法,进行性能优化,会对整体性能有比较大的帮助。

可以通过JPOFILE ,FINDBUGS来检验代码性能~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: