达梦数据库服务进程的文件数量限制导致网络通讯异常 6001

在达梦数据库项目中,碰到网络通讯异常 6001的错误,检查了一下,数据库服务已经启动,防火墙已经关闭,最大会话数都已经修改。将数据库服务重新启动还是报错,将数据库服务停止,以前台方式启动,可以正常登录,关闭前台启动方式,以服务方式后台运行,可以正常登录了。但第二天又出现网络通信异常的错误。
这里首先检查用户limit资源限制,配置正常而且生效
查看实例进程
查看进程最大打开文件数 cat /proc/pid/limits,可以该看到会话的最大文件打开数为1024 
将数据库服务停止,并以前台方式启动,可以看到,该会话的最大打开数为65536
关闭前台启动服务,以systemctl 启动服务之后,可以看到进程会话最大打开文件数又变为1024
问题原因及解决方案
在CentOS 7/RHEL7的系统中,使用Systemd替代了之前的SysV,因此/etc/security/limits.conf文件的配置作用缩小了一些,limits.conf的配置,只适用于通过PAM认证登录用户的资源限制,它对systemd的service的资源限制不生效。登录用户的限制,在/etc/security/limits.conf和 limits.d 配置即可
对于systemd service的资源限制,如何配置呢?
全局的配置,放在文件/etc/systemd/system.conf和/etc/systemd/user.conf。会加载这两个对应的目录中的所有.conf文件/etc/systemd/system.conf.d/*.conf和/etc/systernd/user.conf.d/*.conf其中,system.conf是系统实例使用的,user.conf用户实例使用的。一般的sevice,使用system.conf中的配置即可。systemd.conf.d/*.conf中配置会覆盖system.cont.
 DefanltLimitNOFILE=65536
注意:修改了system.conf后,需要重启系统才会生效。
针对单个Service也可以设置,编辑/usr/lib/systemd/system/DmServiceDM.service文件,或者/usr/lib/systemd/system/DmServiceDM.service.d/my-limit.conf文件,做如下配置:
[Service]
LimitNOFILE=65536
然后运行如下命令,才能生效。
systemctl daemon-reload
systemctl restart DmServiceDM.service
 
 
 
posted @   fangzpa  阅读(1651)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示