mysql - Docker容器、内存消耗和日志

原文 标签 mysql memory docker mariadb docker-compose

这几天我一直在尝试 Docker。我正在使用一个 Drupal 镜像 (docker4drupal),它基本上包含 MySQL (MariaDB)、PHP (php-fpm) 和 NGINX。

几乎每次我将数据库导入数据库容器时,在具有 512MB RAM 的 VPS 上,带有 MariaDB 的容器都会死掉......并且出现“MySQL 服务器已消失”之类的消息......当我的 VPS 有1GB 或 2GB 内存。

所以,这似乎是一个内存问题,但我需要证据!我不知道告诉我容器因内存不足而死亡的日志在哪里。

我检查了 MariaDB 日志,但我找不到任何东西......它的日志只说“数据库没有正常关闭”和“它正在启动”然后“等待连接”......

所以,独立于我的 MariaDB 配置(这不适合 512MB VPS)......我在哪里可以明确找到带有数据库服务器的容器死亡的原因?

欢迎任何帮助。
非常感谢。

PD:我从 PHP 容器执行 mysql cli,这就是为什么尽管数据库容器死了我仍然可以看到发生错误的输出。

最佳答案

可能是内核在“内存不足”事件中终止最消耗内存的进程。主机系统日志中可能存在一些条目。但是,缺少此类条目并不能保证不是内核杀死了您的数据库。

确切的文件名取决于主机系统配置(在您的情况下是指 VPS)。可能是/var/log/{system.log,error.log, ...}。

只要 docker 容器不是一个孤立的 VM,而是内核驱动的 cgroup 的包装器,内核事件就由主机系统登录守护进程处理

关于mysql - Docker容器、内存消耗和日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40186747/

相关文章:

php - 在MySQL中合并结果

php - 我们如何在 php 中从 mysql 数据库中获取原始 html

image - 需要docker镜像运行身份验证

python - 运行没有 '-it' 的容器时,只出现一行 SimpleHTTPServer 输出

MySQL 不识别虚拟列/字段

mysql - 从三个单独的表中收集数据,sql

delphi - 我将文件加载到内存流时出现Delphi内存不足错误

c++ - C++设置结构地址

linux - Shell脚本,无需使用ps aux即可记录特定进程的CPU使用情况

apache - Docker - 如何为 AEM 打开调试端口