为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8.1.2.94
【操作系统】:统信操作系统:4.19.90-2106.3.0.0095.up2.uel20.x86_64
【CPU】:Hygon C86 7285 32-core Processor
【问题描述】*:达梦数据库经常swap告警,每次检查都是dmserver进程占用,每次都只能重启swap来释放,需要协助检查是什么参数设置不合理
看着buff/cache占用非常多,遇到过这个操作系统buff/cache无法清理的情况,并且感觉buff/cache占用了无法重复使用,可以试试执行以下命令是否可以清理,sync && echo 1 > /proc/sys/vm/drop_caches,如果不能清理,则需要重启一次操作系统,之后应该就能清理了,然后把这个命令通过crontab定时执行清理,内存够用了swap应该就不会告警了
同样4.19.90的内核,dmserver运行一段时间,swap基本都被占用光,操作系统这边其他进程包括测试程序申请几十G内存都不会有占用swap的问题
设置direct_io=1、 bak_direct_io=1试试呢
可用内存还是比较多大,大部分被cache占用了,建议直接把swap关闭掉,cache这块占用实际上不影响使用,也做过验证,有实际内存使用需求这块是会释放的
看情况像是内存不够用了,不确定配置内存多大,swap是物理硬盘,数据库运行过程中不应该用到,用到会很慢,因为磁盘速度比内存慢很多,数据库占用内存多是业务操作导致,一般建议增加服务器内存配置或者优化sql语句占用更少的内存。