为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:1-2-18-21.11.11-150669-10013-ENT Pack16
【操作系统】:Kylin Linux Advanced Server V10 (Tercel)
【CPU】:Hygon C86 7285 32-core Processor
【问题描述】*:
达梦数据库内存在每天0点升高,隔一段就会oom。主机内存64G,数据库分配内存37G。每天0点有一个job执行,如下。
我早上也发了帖子,问题跟你一样,我这里才20几个会话,就被OOM了
内存高一般是慢sql引起的,可以先根据实际内存和cpu调整下参数,下面是自动生成参数的脚本,可以参考下。
参数自动优化脚本工具-AutoParaAdj3.4_dm8.zip
设置合理的参数后,再优化下慢sql。
export MALLOC_ARENA_MAX=4
可能是额外内存导致的。把dmdba账户的环境变量改下添加以上内容,然后重启数据库再观察
JOB运行时,持续查询各会话占用内存量,看看有没有占用大的。
SELECT
A.CREATOR , --会话线程
B.SQL_TEXT , --会话当前SQL语句
SUM(A.TOTAL_SIZE)/1024.0/1024.0 TOTAL_M, --当前总量(包括扩展)
SUM(A.RESERVED_SIZE)/1024.0/1024.0 RESERVED_SIZE_M, --实际分配大小
SUM(A.DATA_SIZE) /1024.0/1024.0 DATA_SIZE_M --实际使用量
FROM
V$MEM_POOL A,
V$SESSIONS B
WHERE
A.CREATOR = B.THRD_ID
GROUP BY
A.CREATOR,
B.SQL_TEXT
ORDER BY
TOTAL_M DESC;
也遇到过多次oom的现象,还研究了一段时间,包括和达梦厂商沟通,没有得到从根本上的解决,最简单粗暴的就是扩内存,基本上就是扩了内存就解决了,后过就是恶性循环,当内存大于128G的时候,还真没有出现过oom的情况。
job执行的是什么内容