前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL内存占用100%,是正常的?

MySQL内存占用100%,是正常的?

原创
作者头像
魏景维
修改2022-06-01 18:39:41
6K1
修改2022-06-01 18:39:41
举报

【问题表现】

某项目压测后发现qps达标,服务器cpu和内存占用均在70%以下,然而mysql服务的内存占用高达100%,且并没有因为压测而产生波动。

【问题排查】

1、查看mysql内存配置

MySQL内存配置为8G,共享内存5G,私有内存3G。共享内存是实例创建时就分配的内存空间,所有连接是共享的;私有内存是用于连接mysql服务器时才分配各自的缓存。)

2、查看连接数

如图所示,长连接数接近500。

运维同学回复这个数量不算多,属于正常范围。

3、查看慢查询

运维同学反馈没有查到慢查询数。

4、查看未压测时mysql的内存占用

1)经运维查看监控,压测前没有业务请求进入时,mysql的内存使用率就达到了60%左右;

2)链接池服务启动后,内存占用就已经达到了98%;

3)压测并发进入后就达到了100%

【解决思路】

1、减少无效的长连接,在不影响业务的情况下,降低程序侧的连接池配置或者降低并发度:查看卡特长连接数为400多,运维侧觉得这个数量不算多,属于合理范围内。并且并发度高是因为做压测,因此该解决方案不可行。

2、优化慢SQL:运维并未查看到慢查询记录,因此该解决方案不可行

3、升级内存配置:该项目UAT环境与线上环境是1:1配置,没有充分理由不能随意升配,因此该解决方案不可行

【最终结论】

我们最关注的事情是:mysql内存占用100%的情况下,对性能有什么影响??最终结论是该种情况为正常的有以下原因

原因1:运维侧咨询了腾讯云助手,了解了mysql内存占用100%这个现象是正常的。

原因2:

运维根据腾讯云助手的建议,查看了缓存命中率是处于高水位且使用率变化不明显,不需要进行扩容,可以继续使用。

原因3:

在mysql内存持续100%的情况下,压测多个接口qps均达标,也并未出现其他报错。

【总结】

1、腾讯云平台相关组件的知识可咨询腾讯云助手或者官网文档

2、对mysql服务的监控更多集中在cpu占比、慢查询、长连接等。

参考文档:https://cloud.tencent.com/document/product/236/54792

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【问题表现】
  • 【问题排查】
    • 1、查看mysql内存配置
      • 2、查看连接数
        • 3、查看慢查询
          • 4、查看未压测时mysql的内存占用
            • 【解决思路】
              • 【最终结论】
                • 【总结】
                相关产品与服务
                云数据库 SQL Server
                腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档