最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

Oracle性能优化之合理利用资源(session)

[复制链接]
跳转到指定楼层
楼主
发表于 2014-8-12 19:59:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Oracle性能优化之合理利用资源(session)

导读:
同学们是不是都用遇到过这种情况,一个业务系统开发期业务并发量只是估算一个值,而系统上线后这个并发量可能会出现溢出或是不够的情况。在这种情况下我们DBA怎么给出合理的性能优化建议呢?本文就是利用数据给出session并发量的合理值。

目的:
利用数据给出ORACLE性能优化session的合理值。

环境:
OS: 6.1 AIX
Oracle: 11.2.0.4  rac on 2 nodes

1.实例启动后用户最大并发session?
select SESSIONS_CURRENT,SESSIONS_HIGHWATER from v$license;

2.数据库是否有大量的inactive session?
select
(select count(*) from v$session where status='INACTIVE') as "session inactive" ,
(select count(*) from v$session ) as "session total" from dual;

--可以初步判断中间件连接数设置是否合理。如果inactive/total比值大于0.6考虑是否可以优化(个人建议)

3.数据库大量inactive session都是什么业务?
select username,count(*) from v$session where status='INACTIVE' group by username;

--可以初步判断是什么业务有过多的inactive,联系业务是否可以优化(对“症”下药)

4.既然发现了数据库有大量的inactive存在,怎么样有理有据的给出优化建议呢?
我的方法:
写一个统计total session 与active session的脚本,定时执行脚本并将统计结果写入一张表。经过大量的统计(业务高峰与低峰)就可以得到合理的session值,可以把这个合理的并发session值反馈给业务,进而最优使用系统资源,而不是产生大量的inactive session

4-1.创建一个收集统计信息的表dou_tunning
create table dou_tunning (
username varchar2(40),
total number,
active number,
osdate date);

4-2.编写一个收集session的脚本
vi check_session.sh
#oracle用户的环境变量,一定编辑在脚本中#
sqlplus -s 'system/system' <<EOF
insert into  dou_tunning (select t.username,t.total,d.active,sysdate from (select username,count(*) as total from gv\$session where username is not null and username not in ('SYSTEM','SYSMAN','DBSNMP') group by username ) t ,(select
username,count(*) as active from gv\$session where username is not null and status='ACTIVE' group by username ) d where t.username=d.username);
commit;
exit;
EOF

4-3.定时执行收集session的脚本
doudou1:/home/oracle$crontab -l
5,15,25,35,45,55  * * * * sh /home/oracle/check_session.sh

--AIX中的crontab不支持“/”,很无奈只能写成这样了。当然了,你也可以每分钟收集一次session信息,给客户更详尽的优化数据。

4-4.根据收集来的数据,根据业务的高峰期并发session值,进而给出最优并发session值

5.CASE分析
select * from dou_tunning where username='TAB_DOUDOU'
TAB_DOUDOU        363        1        2014/8/12 13:25:01
TAB_DOUDOU        361        1        2014/8/12 13:28:00
TAB_DOUDOU        358        1        2014/8/12 13:30:01
TAB_DOUDOU        358        3        2014/8/12 13:31:00
TAB_DOUDOU        358        2        2014/8/12 13:32:00
TAB_DOUDOU        358        3        2014/8/12 13:33:00
TAB_DOUDOU        358        2        2014/8/12 13:34:01
TAB_DOUDOU        362        1        2014/8/12 13:36:00
TAB_DOUDOU        363        4        2014/8/12 13:37:00
TAB_DOUDOU        363        2        2014/8/12 13:38:01
TAB_DOUDOU        366        3        2014/8/12 13:39:00
TAB_DOUDOU        368        2        2014/8/12 13:40:00
TAB_DOUDOU        364        2        2014/8/12 13:41:00
TAB_DOUDOU        364        1        2014/8/12 13:42:00
TAB_DOUDOU        358        3        2014/8/12 13:43:00
TAB_DOUDOU        362        1        2014/8/12 13:44:00
TAB_DOUDOU        362        2        2014/8/12 13:47:00
TAB_DOUDOU        360        1        2014/8/12 13:48:00
TAB_DOUDOU        358        1        2014/8/12 13:50:00
TAB_DOUDOU        357        3        2014/8/12 13:51:01
TAB_DOUDOU        357        1        2014/8/12 13:52:00
TAB_DOUDOU        358        1        2014/8/12 13:53:00
TAB_DOUDOU        356        1        2014/8/12 13:55:00
TAB_DOUDOU        362        4        2014/8/12 14:05:00
TAB_DOUDOU        362        2        2014/8/12 14:15:00
TAB_DOUDOU        363        1        2014/8/12 14:45:00
TAB_DOUDOU        363        2        2014/8/12 14:55:01
TAB_DOUDOU        361        3        2014/8/12 15:05:00
TAB_DOUDOU        362        1        2014/8/12 15:15:01
TAB_DOUDOU        366        1        2014/8/12 15:25:00
TAB_DOUDOU        360        1        2014/8/12 15:35:00
TAB_DOUDOU        359        2        2014/8/12 15:45:00
TAB_DOUDOU        361        1        2014/8/12 15:55:00
TAB_DOUDOU        361        1        2014/8/12 16:05:00

--以上是一个核心业务统计的session值,可以看到接近400的session,多数都是inactive,这个一个资源利用严重不合理的案例,当然了,

我会继续给这个系统进行分析与比较,最终给客户提出一个有建设性意义的session值。

总结:
合理的利用资源也是一种优化的方式。优化其实是一种思想。

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-3 18:51

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表