两个会话级别的内存参数的快速调优

hql 2022/07/31 2143 7 1
摘要 两个小小的参数,如果调整的不好,影响还挺大的。

涉及到的参数

参数名字:SESS_POOL_SIZE
默认值:64 KB
参数类型:动态,会话级

参数含义:
会话缓冲区大小,以 KB 为单位,有效值范围(16~1024*1024)。若所申请的内存超过实际能申请的大小,则系统将按 16KB 大小重新申请。

参数名字:VM_POOL_SIZE
默认值:64 KB
参数类型:静态

参数含义:
系统执行时虚拟机内存池大小,以 KB 为单位,在执行过程中用到的内存大部分是从这里申请的,它的空间是从操作系统中直接申请的,有效值范围(32~1024*1024)。

参数合理性查看

方法:数据库中用sysdba先建立好 这些存储过程;并执行GM1(用管理工具执行),如下图所示:

image.png

如果平均在用,远超初始,则说明涉及到的两个参数值过小;需要放大,且建议放到平均在用的大小。

具体操作

1.先记录好当前值

select * from v$dm_ini where regexp_like(PARA_NAME,'SESS_POOL|VM_POOL');

复制

image.png

2.再放大参数:

sp_set_para_value(2,'VM_POOL_SIZE',3072); --注意,该方法仅修改了配置文件,需要重启数据库服务才能生效(因为该参数是静态参数); sp_set_para_value(1,'SESS_POOL_SIZE',3072);

复制

说明:这两个目标值3072,是gm1的查询结果(3MB换算成3072KB)。

相关表征

有较多会话都在内存的处理上(绝大部分是申请,个别是释放),下面为PSP的统计结果(对数据库所有的线程即时线程堆栈,进行归类统计;关于PSP命令的说明点击该链接查看 关于psp命令):

image.png

评论
后发表回复
csw
老铁666
发布于 2022/07/31 09:07

作者

文章

阅读量

获赞

扫一扫
联系客服