达梦8 内存泄漏泄漏原因分析之一

在实际使用过程中经常发现DMSERVER进程在OS中的内存占用使用远远超过实际情况。原因有很多,下面列出其中一种:

测试库版本

复制代码
SQL> select id_code;

LINEID     ID_CODE
---------- -----------------------------------
1          --03134283938-20221019-172201-20018

测试步骤如下:

复制代码
#查看dmserver在OS上的内存占用
SQL> host ps aux | grep dmserver | grep -v grep
dmdba    20398 16.8 24.0 3518472 1938328 pts/2 Sl+  11:21   0:58 dmserver path=dm.ini

#向测试表插入数据,模拟排序操作
SQL> insert into d select * from a order by 2;
affect rows 80000000
used time: 00:01:12.785. Execute id is 602.

#查看dmserver在OS上的内存占用
SQL> host ps aux | grep dmserver | grep -v grep
dmdba    20398 24.7 42.8 5289780 3457352 pts/2 Sl+  11:21   1:48 dmserver path=dm.ini

#退出会话
SQL> exit

#查看dmserver在OS上的内存占用,又回到了测试前
[dmdba@node1 ~]$ ps aux | grep dmserver | grep -v grep
dmdba    20398 24.6 23.8 3518520 1927272 pts/2 Sl+  11:21   1:51 dmserver path=dm.ini

以上插入SQL执行的过程中查询V$MEM_POOL视图,DATA_SIZE字段的值不断增长,SQL语句执行完毕后,DATA_SIZE增加的部分消灭。但从上图中可见,但只有会话退出后在OS上的显示才回到测试前。分析原因如下:

用lsof命令搜索上述会话的thrd_id,显示打开了许多文件。会话退出后相关资源才完全释放。

相关推荐
2601_952196362 小时前
计算机科学与技术专业应届生投商业分析岗,需要哪些额外能力?
数据库·oracle
皮皮学姐分享-ppx2 小时前
地级市、省级人才政策强度测算(2000-2025)
大数据·数据库·人工智能·百度·高考
晚安日记wanna2 小时前
大厂禁 JOIN 的真正原因,拆到第四层才清楚
数据库·后端·面试
java1234_小锋2 小时前
Redis 宣布正式接入 AI
数据库·人工智能·redis
这个DBA有点耶2 小时前
数据融合平台的下一代形态:数据库内核自己就能融合,为什么还要ETL?
数据库·架构·aigc
数据库小学妹3 小时前
MySQL大表怎么优化?2亿行表的分区归档与冷热分离实战
数据库·mysql·分库分表·分区表·数据库运维·冷热分离
91刘仁德3 小时前
RAG实战 - 向量数据库(Milvus)
数据库·milvus
资深技术分享员3 小时前
Geejing WebBuilder 日志、在线用户、系统监控,出问题时的三个第一现场
java·运维·数据库
煎饼皮皮侠3 小时前
设计一个Web版数据库管理平台(之六):SQL执行监听器 —— 日志、监控与审计
sql·数据库平台
我是小白呀3 小时前
n8n 实战:把 AcmeFlow 的 READY 事件接到 CRM 通知
数据库·人工智能·workflow