【问题标题】:CloudSQL - MySql - Memory Leak after ImportCloudSQL - MySql - 导入后内存泄漏
【发布时间】:2020-01-27 11:11:32
【问题描述】:

在 google CloudSQL 上使用 MYSQL 第二代我在标准备份导入后遇到内存使用问题(如内存泄漏)

  • 机器是 db-n1-highmem-2,有 2 个 CPU 和 13GB 内存
  • 已使用 gcloud import 命令从之前使用 gcloud export 命令导出到 google 存储桶中的 .gz 文件完成导入
  • 当时只有一个连接处于活动状态,即我自己使用 Mysql 工作台工具通过 cloudProxy 连接到实例,但我没有运行其他任何东西
  • 行为是递增的:如果我从同一个文件重新导入另一个文件,使用量会再次增加

  • 在导入过程中存储和 CPU 使用率增加,然后它们会正常运行

这是我的配置

重启实例,会清空内存,但下次导入后会重新启动。

提前致谢

编辑根据需要添加具有更大时间跨度的屏幕截图(过去 4 天)

过去 7 天的 CPU 使用情况

【问题讨论】:

  • 您能否在上次导入后加上 4 小时后发布相同的图表,以便 MySQL 有时间完成导入处理,包括将数据存储到您的表中?您使用的是专用服务器还是共享服务器?
  • @WilsonHauck 感谢您的评论。我已更新上传了最近 4 天内存使用情况的屏幕截图(如您当时所见,导入已完成)。此外,MySQL 服务器托管在虚拟机中的谷歌云上(最后一个屏幕截图中的生产服务器是 db-n1-highmem-4
  • Tonino,感谢您提供新的屏幕截图。附加信息请求。在 pastebin.com 上发布并分享链接。从 SSH 登录根,文本结果: B) SHOW GLOBAL STATUS;从现在开始,请 - 避免今天停止/启动或重新启动 C) 显示全局变量; D) 显示完整的处理程序; F) 显示 ENGINE INNODB 状态; G) SELECT name, count FROM information_schema.innodb_metrics ORDER BY name;为服务器工作负载调优分析提供建议。
  • 谢谢@WilsonHauck。请在下面找到全局状态:pastebin.com/KUTUyLWA 全局变量:pastebin.com/rTim1Y7s 进程列表:(主机是连接池中使用的 cloudSQLProxy IP)pastebin.com/wGrSCBFR 引擎状态:pastebin.com/FVVTJnCH InnoDB 指标:pastebin.com/y0mtQcgP
  • 谢谢,分析中。将尝试在 24 小时内完成。

标签: mysql database memory-leaks google-cloud-sql


【解决方案1】:

每秒速率 = RPS

为您的 Google Cloud Database 标志考虑的建议,

read_rnd_buffer_size=128K  # from 256K to reduce handler_read_rnd_next RPS of 1,883
read_buffer_size=512K  # from 128K to reduce handler_read_next RPS of 6374
innodb_lru_scan_depth=100  # from 2048 to conserve 90% of CPU cycles used for function
thread_cache_size=100  # from 48 for less overhead to support your 169 max_used_connections

您应该会发现这些动态配置更改将显着减少 CPU 繁忙。

今天请求的其他信息可能会揭示您的 RAM 使用量每天在 18:00 之前上升的原因。

【讨论】:

  • 实际上 CPU 利用率并不是什么大问题,因为它从来没有超过 20% 的峰值(我在最初的问题中添加了 CPU 利用率屏幕截图)。 18 通常是我按照报告执行手动导出/导入程序的时间。如果我运行 mysqldump 命令来导出和导入整个数据库(结构 + 数据),则会发生相同的峰值,因此使用 gcloud 命令或纯 mysql 命令的行为是相同的
【解决方案2】:

在我看来,这似乎是一种正常行为。 Linux 总是尝试consume 释放内存用于缓冲。

我不知道缓存算法在后台是如何工作的,但可能是当用户导入数据时 MySQL 会提示 linux 缓存它,因为它可能会立即被需要。

请参考this thread以获得更好的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 2021-07-23
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多