GreatSQL社区

搜索

[待回复] 讨论个数据库优化的问题

51 6 5 天前
还是之前遇到的MySQL内存问题,自建的机器内存问题,经过操作系统级别的定期回收内存,已经解决内存过高了,现在有个业务实例,使用的是阿里云RDS,有个服务是频繁往数据库里LOAD数据,然后调用存储过程将LOAD的临时表数据合并到正式表,用的REPLACE,试用过很多方法,
小版本升级(最高升到8.0.28,后面字符集命名方式问题不能再升了)可以排除掉小版本BUG的问题;
配置升级,一路升配的64G的内存,还是会一直涨;
开启performance_shcema后,查询内存占用

SELECT th.PROCESSLIST_ID AS conn_id,
       sys.format_bytes(SUM(m.CURRENT_NUMBER_OF_BYTES_USED)) AS current_alloc
  FROM performance_schema.memory_summary_by_thread_by_event_name m
  JOIN performance_schema.threads th ON m.THREAD_ID = th.THREAD_ID
GROUP BY conn_id
ORDER BY SUM(m.CURRENT_NUMBER_OF_BYTES_USED) DESC
LIMIT 30;



其中 25727 线程,一直不会释放,一直涨,

查看对应线程

SELECT EVENT_NAME,
       ROUND(CURRENT_NUMBER_OF_BYTES_USED/1024/1024,2) AS current_mb,
       ROUND(HIGH_NUMBER_OF_BYTES_USED/1024/1024,2)    AS high_mb,
       COUNT_ALLOC, COUNT_FREE
  FROM performance_schema.memory_summary_by_thread_by_event_name
WHERE THREAD_ID = 26819
ORDER BY CURRENT_NUMBER_OF_BYTES_USED DESC
LIMIT 50;



memory/innodb/memory 这个事件占的最多

我应该让开发改改EF框架?还是啥问题呢,现在数据库方面真的是想尽办法也找不到啥优化方法了

全部回复(6)
reddey 4 天前
你的RDS内存已经是64G,定时任务LOAD数据,用了内存10G,这个也不太过分吧。
wangcw 3 天前
reddey 发表于 2025-11-22 17:14
你的RDS内存已经是64G,定时任务LOAD数据,用了内存10G,这个也不太过分吧。

它会一直涨,直到把Master撑爆,然后引起HA。
reddey 前天 09:42
wangcw 发表于 2025-11-23 08:37
它会一直涨,直到把Master撑爆,然后引起HA。

阿里云RDS,你这个是用的主从复制?
yejr 前天 15:18
load完数据后,把这个进程给kill看看呢
wangcw 昨天 08:29
reddey 发表于 2025-11-24 09:42
阿里云RDS,你这个是用的主从复制?

就单纯的高可用版本RDS,它后台隐藏一台机器的。
wangcw 昨天 08:30
yejr 发表于 2025-11-24 15:18
load完数据后,把这个进程给kill看看呢

代码改不了,KILL掉应用就断了,而且是3分钟一次,调用很频繁的。
wangcw

4

主题

0

博客

174

贡献

中级会员

Rank: 3Rank: 3

积分
211

助人为乐(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2025-11-26 01:21 , Processed in 0.036560 second(s), 15 queries , Redis On.
快速回复 返回顶部 返回列表