« 分析性能数据之二 »
DBA » http://www.anysql.net/dba/analyze_perf_data_two.html 2009-05-08Oracle中有很多的性能数据可以分析, 有些数据反应的不仅仅是数据库的, 而且可以反应出应用的或架构上的信息, 作为DBA应当主动分析, 并提供给相关的人员, 以协助技术决策. 比如, 应用程序中连接池的设置, 最大允许多少个连接连到数据库中?
粗略一看, 好象DBA没有办法得到这些信息, 应当从应用日志中去统计不能获得连接或连接超时的报警信息. 在真实应用中, 大部份的数据库连接都是保持的, 也就是用了连接缓冲池, 会话不会经常断开重连, 因此可以通过持续观察应用服务器在数据库上产生的连接数来分析, 如果真实连接数持续达到了设置的最大值, 就表示需要增大最大连接数的设置了.
用如下SQL来取得连接数据, 每5分钟取一次, 然后保存到一张表中,
select sysdate day, INSTANCE_NAME,
machine, username, count(*) conncount
from v$session, v$instance
group by machine, username, instance_name
用WebChart来显示某台机器, 最近两天或三天的连接数, 就可以看出需不需要扩大连接设置了.
这其实很简单, 但结果是使我们的应用程序数据库连接设置有数据可依, 真实地发挥了作用.


5分钟抓一次 v$sysstat 里的logon_cumulative 也可以知道连接的状况。如果每5分钟登录的个数一样,那可以肯定jboss 的 minserver 配高了
没关心min server,是担心max server不够影响业务.
连接消耗还是挺大的,尤其高峰期,我觉得把连接控制在minserver 以下比较好,如果尖峰很多,那就调高minserver
偶通过WebChart结合上面的sql,画出总连接数和总活动数的子图,
发现了实际应用中数据库连接的一些问题.
正常的应用系统他的总连接数应该是稳定,而我监控的系统中会周期的增加20个连接数,但活动会话数没有增加.
后来查明是一台应用通过jdbc连接数据库,而这台的网络不怎么好.造成了这种情况.
这是我使用webchart画图的第一次真正的受益 !
感谢!
通过工具发现系统中的问题, 这才是工具的目标, 至于是否Flash只能先靠后站了.