Mysql在备份转储过程中内存不足(Docker 容器)

作者:无名 - 互联网 -

问题:

我们有一个正在运行mariadb的容器,主机上还运行一些小容器。 mysql容器分配了21g内存(总数超出 32g),以及其他一些参数,并在 docker-compose中使用以下命令:

db:

command:

- --innodb_buffer_pool_size=4294967296

- --query_cache_size=268435456

- --tmp_table_size=1073741824

- --max_heap_table_size=1073741824

- --table_open_cache=20000

- --max_connections=1000

- --performance_schema

mem_limit: 21g

问题是,mysql容器在一些常规备份(即 mysqldump 命令)操作中会耗尽内存,而容器只是崩溃。

基本上,容器占用的内存在大约一周的使用期间会爬到 21g, 我认为,如果我们没有启动任何"大"的操作,我认为可以停留在那里,但是,如果启动了 mysqldump 命令,那么在转储过程中的某个时刻 将它超过其分配的限制,并且崩溃(当我们在本周早些时候没有达到~95%的内存使用量时,它就不会崩溃)。

我不明白为什么mysql不能更好地管理它的内存,并释放一些它来启动它需要执行的新命令?

我们尝试将 mysqldump 命令放在不同的容器中,尝试"隔离"这个大操作,但这似乎没有改变任何东西,大部分工作仍由mysql容器完成,当另一个容器执行转储时,也会最终崩溃 。

我们应该研究什么? 我们的设置完全没有问题吗? 我们在运行mysqltuner.pl之后设置它们,如果你认为问题出在哪里,我就可以进行新的运行。

我们有大约700个数据库,每个数据库大约有40个表,平均可能有大约10个同步的mysql连接,其中一些峰值为30或50。 数据库的大小介于10mb和200mb之间。

感谢你的帮助,谢谢 !


回答 1:

使用 --quick 选项运行 mysqldump

默认情况下 mysql dump会尝试一次性转储整个表,这意味着它必须将整个表加载到内存中,并且当内存受限时 mysqldump 可能会失败 。 --quick 选项切换到按行转储,这稍微慢一点并使转储文件略大,但使用的内存要少得多

不,我不知道他们为什么命名选项 --quick


回答 2:

如果你不想给mysql提供更多内存,你可以尝试设置复制服务器,并从那里执行mysqldump,问题是当你的服务器加载时mysqldump有风险。 请看一下与性能相关的参数,这些参数也可能有助于 https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#mysqldump-performance-options

希望这会有帮助。




文章标签:docdockerdockcontainmemo备份内存dump

本文内容由IT人知识库(原文链接:http://www.itpeo.net/389620/4628532.html)本站为各位整理





Tomcat:基本认证垃圾邮件导致服务器过载

问题:我们有一个基于debian的服务器,在负载平衡的服务器后面运行tomcat ,因为它是用于开发的,我们在tomca ...

在CentOS7上,使用Yum删除软件包

问题:问题:从系统删除python boto和yum ,它似乎已不再安装,但是,仍会出现在yum 中。尝试:yum cl ...

如何:在远程服务器上检查函数的变量是文件夹或文件的路径?

问题:我需要使用rsync或scp从远程服务器复制文件或文件文件夹到计算机。要复制(同步)文件文件夹,我使用以下函数:f ...

Mysql修复root密码

问题:我想我搞乱了 user 表,试图运行类似这样的去更新密码update mysql.user set authent ...

如何备份正在运行的远程服务器?

问题:我们想要不关机备份服务器上的所有内容,这是在世界另一端远程运行的,(这是一个debian系统。)我看到的很多备份建 ...

如何将逻辑卷的大小调整为它内部的文件系统大小

问题:目标系统是centos 6.x,但是,调整大小的操作将在centos 7.6 kickstart的%pre部分完成 ...

在多个数据服务( Mysql,hadoop,Aurora,mssql ) 中,如何通过反向代理转发TCP请求 等)

问题:我正在尝试解决一个架构设计谜题,它是关于设计一个保持数据和服务器尽可以能安全的。*i 希望隐藏我的外部设计( 有几 ...

如何找出导致大量dentry_cache使用的原因?

问题:注意,与dentry_cache相比,inode_cache amp; ext3_inode_cache板非常小。 ...

Puppet: 如何向现有文件中添加行

问题:: 下面的示例正确且工作正常。 但是由于某些原因我第一次不工作,然后我做了 vagrant provision,然 ...

mysqld: 无法创建/写入文件( Errcode: 2 )

问题:我以前使用过 xampp,我想尝试 mamp 。 我无法启动mysql服务器。 我已经尝试过:这个插件,和这个版本 ...

特定云应用的网络连接存储有多坏?

问题:我听说推荐远离aws主机的某些"大数据"应用程序( 比如。 由于ec2实例通常使用网络附加存储( 虽然最近有一些高 ...

在ubuntu服务器中,如何重置 root 密码

问题:我们似乎把 root 密码放错了我们有( 使用 ovh )的专用服务器。 我询问他们如何重置 root 密码,这是 ...

在 ESXI 5 linux虚拟机上,如何展开磁盘?

问题:我已经创建了一个带有 2个磁盘的linux机器。 2nd 磁盘为 100gb/wdata 精简置备。 我停止了虚拟 ...

在从终端或者使用任何系统调用的BSD平台上,如何访问物理内存?

问题:我只是不知道如何使用sdl中的内存或者虚拟内存来获取acpi表及它的地址。。$mem 输入命令没有找到。我可以做什 ...

cURL或者SSL问题,如何解决?

问题:我一直在犯这个错误:no curl data returned for https://xxx.xxxx.xxx: ...

为什么有一个专用子网?

问题:a 创建向导允许创建单个"public 子网",或者让向导创建一个"public 子网"和一个"private 子 ...

rfedfre

在网络上,如何配置两个ip块供用户使用

问题:我的isp给了我一个/30 和一个/27 ip块我可以使用。 为了不给出我的ip,我将使用 192.168.1.1 ...

在zsh中,如何将stderr重定向到loop或者foreach循环中的/dev/null?

问题:我正在尝试完成一些在bash中很简单的事情: 查找文件夹中的文件,如果存在( 如果没有文件,则不输出),则为它们源 ...

如何查找要安装的软件包?

问题:linux的使用经验,但我正在尝试安装 64位 centos 6.3软件,需要以下软件包:hal packages ...

如何用iPXE恢复ubuntu图像

问题:我想创建一个我的ubuntu系统的备份。 将备份文件/映像放在我的一个服务器上,使用ipxe或者gpxe将它恢复到 ...