达梦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,显示打开了许多文件。会话退出后相关资源才完全释放。

相关推荐
爬山算法3 小时前
Redis(162)如何使用Redis实现消息队列?
数据库·redis·缓存
u***32433 小时前
【Redis】centos7 systemctl 启动 Redis 失败
数据库·redis·缓存
煎蛋学姐3 小时前
SSM社区生鲜电商平台dq96z(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·用户管理·ssm 框架·社区生鲜电商·商品信息管理
杨云龙UP3 小时前
从0搭建Oracle ODA NFS异地备份:从YUM源到RMAN定时任务的全流程
linux·运维·数据库·oracle
倔强的石头_3 小时前
从 Oracle 到 KingbaseES:破解迁移痛点,解锁信创时代数据库新可能
数据库
踢足球09294 小时前
Redis的典型应用
数据库·redis·缓存
hadage2334 小时前
--- redis 常见问题 ---
数据库·redis·mybatis
O***P5714 小时前
redis批量删除namespace下的数据
数据库·redis·缓存
5***26224 小时前
SQL Server导出和导入可选的数据库表和数据,以sql脚本形式
数据库·sql
JSUITDLWXL4 小时前
Oracle记录被锁的查询与强制删除方法
数据库·oracle