注册

如何可以将使用的内存降下来,以及有关内存的参数疑问

我贼费解 2024/12/20 353 6 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:Kylinv10
【CPU】:x86
【问题描述】*:
f08888077a2d19df69d9f997060d969.png
如图,这个服务器当前跑了双实例(一个生产一个测试),当前生产的进程占用了20G内存,服务器总内存30G
57ea500cff6078f573e841544e23ec4.png

当前看内存的余量不大了,现在的问题是如何可以将使用的内存降下来。
生产的dm.ini中memory相关参数如下

image.png
疑问:MEMORY_POOL*MEMORY_N_POOLS是共享内存池能申请的最大值吗?

【MEMORY_POOL初始为2000/11 MB,有11个相同的分片(也就是最开始总共申请了大约2000MB),后续不够用时每次扩展MEMORY_EXTENT_SIZE的大小,可以扩大到总共MEMORY_POOL * MEMORY_N_POOLS 2000 * 11MB,但总量超过MEMORY_TARGET后,内存空闲时,缩回到3000MB(也就是22000MB缩回到3000MB);这样理解是否正确】

【BUFFER申请的内存是共享内存池的一部分吗?
从网上找到一个sql如下:
SELECT
(
SELECT
SUM(CAST(PAGE_SIZE AS NUMBER) *CAST(N_PAGES AS NUMBER))/1024/1024
FROM
V$BUFFERPOOL
) ||'MB' AS 缓冲区总大小,
(
SELECT
SUM(TOTAL_SIZE)/1024/1024
FROM
V$MEM_POOL
)||'MB' AS 池总大小,
(
SELECT
SUM(CAST(PAGE_SIZE AS NUMBER) *CAST(N_PAGES AS NUMBER))/1024/1024
FROM
V$BUFFERPOOL
) +
(
SELECT
SUM(TOTAL_SIZE)/1024/1024
FROM
V$MEM_POOL
) ||'MB' AS 总内存大小
FROM DUAL;
image.png
通过这个sql查出来的值差不多能跟top的情况对应上,那么可以理解为dmserver主要申请的内存占大头的就是memory_pool相关跟buffer相关的内容吗

回答 0
暂无回答
扫一扫
联系客服