Gosse0405 2023-11-21 10:24 采纳率: 25%
浏览 7
已结题

docker启动mysql占用内存超高

问题遇到的现象和发生背景

使用docker-compose启动的mysql,启动的前几秒,内存一直在跳动,能达到16G的值,然后最后就稳定在16G

操作环境、软件版本等信息

Linux服务器

img

Mysql是5.7

docker-compose的配置

version: '3'  
services:  
  mysql:  
    image: mysql:5.7  
    container_name: mysql5.7  
    restart: always  
    ports:  
      - "3306:3306"  
    environment:  
      - MYSQL_ROOT_PASSWORD=******
      - TZ=Asia/Shanghai
    volumes:  
      - ./mysql/my.cnf:/etc/mysql/my.cnf  
      - ./mysql/data:/var/lib/mysql  
      - ./mysql/conf.d:/etc/mysql/conf.d

my.cnf的配置

[client]
port=3306
socket=/var/lib/mysql/mysql.sock

[mysqld]
port=3306
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid
basedir=/usr
datadir=/var/lib/mysql
tmpdir=/tmp

#设置字符集和校对集
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

#服务器ID,用于复制设置
server-id=1

#设置查询缓存
query_cache_type=1
query_cache_size=64M

#InnoDB设置
innodb_buffer_pool_size=4G
innodb_log_file_size=512M
innodb_log_buffer_size=64M
innodb_flush_log_at_trx_commit=1
innodb_file_per_table=1
innodb_data_file_path=ibdata1:12M:autoextend

#最大连接数
max_connections=1000

#设置线程缓存
thread_cache_size=100

#错误日志路径
log_error=/var/log/mysql/error.log

#慢查询日志设置
slow_query_log=1
slow_query_log_file=/var/log/mysql/mysql-slow.log
long_query_time=2

#解决占用内存高的问题
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256
performance_schema=off

#远程可以访问
bind_address=0.0.0.0

[mysqld_safe]
log-error=/var/log/mysql/error.log
pid-file=/var/run/mysqld/mysqld.pid

尝试过的解决方法

使用了pmap查询了内存映射信息(我删除了一些内容,太多了)

[root@ecm-dgbg0m weifuyun]# cat memmysql2.txt 
2796674:   mysqld
         Address Perm   Offset Device    Inode     Size      Rss      Pss Referenced Anonymous LazyFree ShmemPmdMapped Shared_Hugetlb Private_Hugetlb Swap SwapPss Locked THPeligible Mapping
        00400000 r-xp 00000000  fd:01 35025999    22460    11544    11544      11544         0        0              0              0               0    0       0      0           0 /usr/sbin/mysqld
        01bee000 r--p 015ee000  fd:01 35025999      948      540      540        540       436        0              0              0               0    0       0      0           0 /usr/sbin/mysqld
        01cdb000 rw-p 016db000  fd:01 35025999      692      432      432        432       164        0              0              0               0    0       0      0           0 /usr/sbin/mysqld
        01d88000 rw-p 00000000  00:00        0      768      616      616        616       616        0              0              0               0    0       0      0           1 
        02235000 rw-p 00000000  00:00        0   116944   115896   115896     115896    115896        0              0              0               0    0       0      0           1 [heap]
    7f034c000000 rw-p 00000000  00:00        0      132        4        4          4         4        0              0              0               0    0       0      0           1 
    7f034c021000 ---p 00000000  00:00        0    65404        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0350000000 rw-p 00000000  00:00        0      132        4        4          4         4        0              0              0               0    0       0      0           1 
    7f0350021000 ---p 00000000  00:00        0    65404        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0354000000 rw-p 00000000  00:00        0      144       32       32         32        32        0              0              0               0    0       0      0           1 
    7f0354024000 ---p 00000000  00:00        0    65392        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0358000000 rw-p 00000000  00:00        0      132       28       28         28        28        0              0              0               0    0       0      0           1 
    7f0358021000 ---p 00000000  00:00        0    65404        0        0          0         0        0              0              0               0    0       0      0           1 
    7f035c000000 rw-p 00000000  00:00        0      144       32       32         32        32        0              0              0               0    0       0      0           1 
    7f035c024000 ---p 00000000  00:00        0    65392        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0360000000 rw-p 00000000  00:00        0      144       32       32         32        32        0              0              0               0    0       0      0           1 
    7f0360024000 ---p 00000000  00:00        0    65392        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0364000000 rw-p 00000000  00:00        0      132       36       36         36        36        0              0              0               0    0       0      0           1 
    7f0364021000 ---p 00000000  00:00        0    65404        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0368df0000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0368df1000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f03695f1000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f03695f2000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0369df2000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0369df3000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f036a5f3000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f036a5f4000 rw-p 00000000  00:00        0    26672    20480    20480      20480     20480        0              0              0               0    0       0      0           1 
    7f036c000000 rw-p 00000000  00:00        0      132        4        4          4         4        0              0              0               0    0       0      0           1 
    7f036c021000 ---p 00000000  00:00        0    65404        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0370576000 rw-p 00000000  00:00        0     2200     2120     2120       2120      2120        0              0              0               0    0       0      0           1 
    7f037079c000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f037079d000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0370f9d000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0370f9e000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f037179e000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f037179f000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0371f9f000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0371fa0000 rw-p 00000000  00:00        0     8192       20       20         20        20        0              0              0               0    0       0      0           1 
    7f03727a0000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f03727a1000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0372fa1000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0372fa2000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f03737a2000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f03737a3000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0373fa3000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0373fa4000 rw-p 00000000  00:00        0     8192       12       12         12        12        0              0              0               0    0       0      0           1 
    7f03747a4000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f03747a5000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0374fa5000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0374fa6000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f03757a6000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f03757a7000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0375fa7000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0375fa8000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f03767a8000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f03767a9000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0376fa9000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0376faa000 rw-p 00000000  00:00        0    40052    32848    32848      32848     32848        0              0              0               0    0       0      0           1 
  7f037d8f6000 rw-p 00000000  00:00        0  4594756   241420   241420     241420    241420        0              0              0               0    0       0      0           1 
    7f0496007000 ---p 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           1 
    7f0496008000 rw-p 00000000  00:00        0     8192        8        8          8         8        0              0              0               0    0       0      0           1 
    7f0496808000 r-xp 00000000  fd:01 36738535       48       48       48         48         0        0              0              0               0    0       0      0           0 /usr/lib64/libnss_files-2.17.so
    7f0496814000 ---p 0000c000  fd:01 36738535     2044        0        0          0         0        0              0              0               0    0       0      0           0 /usr/lib64/libnss_files-2.17.so
    7f0496a13000 r--p 0000b000  fd:01 36738535        4        4        4          4         4        0              0              0               0    0       0      0           0 /usr/lib64/libnss_files-2.17.so
    7f0496a14000 rw-p 0000c000  fd:01 36738535        4        4        4          4         4        0              0              0               0    0       0      0           0 /usr/lib64/libnss_files-2.17.so
    7f0496a15000 rw-p 00000000  00:00        0 16777240 16777216 16777216   16775904  16777216        0              0              0               0    0       0      0           1 
    7ffd235bc000 r--p 00000000  00:00        0       12        0        0          0         0        0              0              0               0    0       0      0           0 [vvar]
    7ffd235bf000 r-xp 00000000  00:00        0        8        4        0          4         0        0              0              0               0    0       0      0           0 [vdso]
ffffffffff600000 r-xp 00000000  00:00        0        4        0        0          0         0        0              0              0               0    0       0      0           0 [vsyscall]
                                               ======== ======== ======== ========== ========= ======== ============== ============== =============== ==== ======= ====== =========== 
                                               22373384 17211932 17211928   17210620  17194096        0              0              0               0    0       0      0          89 KB 

我想要达到的结果

怎么解决这个问题呢?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-21 13:18
    关注

    【相关推荐】



    • 你可以看下这个问题的回答https://ask.csdn.net/questions/7696777
    • 这篇博客也不错, 你可以看下Docker安装mysql 8 忽略表名大小写,通过命令修改my.cnf配置文件,无需进容器重新初始化数据库
    • 除此之外, 这篇博客: 码神之路博客部署教程【完整版】|基于Linux的Docker部署教程|非常详细中的 思路:构建一个docker来配置MySQL;并将mysql数据文件布置到宿主机中,稍微麻烦一些,但是安全性得以提高 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      配置mysql之前,希望大家先在自己的宿主机上安装MySQL,

      linux上保姆级的mysql安装教程,跟着做就可以了。
      之所以这么做,是因为我希望将mysql数据存储在宿主机上,docker中只是配置一个mysql环境,如果将数据库文件存储在docker上,一旦删除容器(通过rm指令),所有的数据文件都会消失,很不安全。
      • 建立宿主机上的MySQL目录(创建文件夹指令mkdir,cd是切换目录指令)
      mkdir -p /mnt/docker/mysql
      cd /mnt/docker/mysql
      
      • 继续在命令窗口运行以下指令
        • 其中run有着[创建并运行]mysql容器的作用
        • -p是建立宿主机3307端口与容器3306端口的映射
        • -v是生成挂载目录,挂载可以理解为共享/同步一个文件目录,冒号前的目录是宿主机目录,冒号后为docker中的MySQL数据目录,即使docker被删除,数据仍然可以保留到宿主机的目录中
          • 值得一提的是 码神的笔记中挂载了三个目录,分别是配置文件,日志,数据文件。我在实际操作中日志一直出错,所以干脆只配置最重要的数据文件
        • 下一步则是指定宿主机MySQL的默认密码,不设置默认密码可能会报错。
      docker run -id \
      -p 3307:3306 \
      --name=mysql \
      -v /mnt/docker/mysql/data:/var/lib/mysql \
      -e MYSQL_ROOT_PASSWORD=root \
      mysql:5.7
      

      利用挂载来映射文件

      接下来我们需要进入容器,开放权限

      • docker ps 查看容器是否已经运行
        • 应该可以看到mysql5.7的容器已经在运行
      • 进入容器docker exec -it mysql bash
      • 进入容器中的MYSQLmysql -uroot -p
        • 输入密码,如上,我设置的为root,直接输入就可以。(界面上显示空白,但其实密码已经输入了,按回车键确定。)
      • 接下来的步骤和上面安装宿主机mysql第10步类似
        • show databases;
        • use mysql ;
        • show tables;
        • select user,host from user;(可能会报sql错误,加上``包裹字段即可)
          • 可以看到root用户对应的host并不是%,我们要改为%以开放权限。
        • update user set host ='%'where user ='root';
        • update user set host ='%'where user ='root' and host='localhost';
        • 最好两句都执行下,我当时的情况是有两个root用户,执行的结果是一个root对应host为空,另一个host为%。
        • (甚至可以开放高级权限grant all privileges on *.* to root@'%' identified by 'root' with grant option;
        • 刷新权限flush privileges;
      • exit 退出MySQL,再exit退出MySQL的容器

      检查mysql的Docker容器是否配置成功,并查看其暴露出来的docker ip地址

      • 用这个docker logs -f mysql 看看有没有配置成功在这里插入图片描述
      • docker inspect mysql →查看对应的mysql 的docker容器的ip地址172.17.0.2,请记住这个地址,下面打包后台应用需要用到。
        MySQL的Docker容器的ip地址

      环境无误后我们需要导入我们的数据库文件blog.sql

      • 上面提到,我们已经将宿主机/mnt/docker/mysql/data目录和docker容器的/var/lib/mysql地址之间实现了映射,因此,我们如果将blog.sql文件导入宿主机的该目录下,blog.sql同样也会出现在docker的对应目录下,具体操作如下:
      cd /mnt/docker/mysql/data
      rz
      
      • 其中cd 是切换目录的意思,rz是上传文件。此时我们将blog.sql导入其中即可。接下来我们检查一下docker容器中是否出现该文件
      • 进入容器docker exec -it mysql bash
      • 切换到挂载目录cd /var/lib/mysql
      • 查看该目录下所有文件ls,理论上可以看到blog.sql也在该目录下。
      • 接下来在docker中执行该sql。
        • mysql -uroot -p ,输入密码,进入docker中的数据库
        • 创建数据库create database blog;
        • 退出回到容器exit
        • 将文件导入数据库mysql -uroot -p blog < blog.sql;
        • 切换数据库use blog;
        • 执行sql并保存数据库source blog.sql;
      • 结果检查
        • use blog; show tables; select * from ms_admin;
        • 如果能查出来结果(如下图),那就说明我们的部署成功了。
          数据库数据成功导入
      • 在实际部署中,数据库上我花的时间最多,link failure,access denied之类,jdbc connection failed之类,很大可能都是数据库权限的问题。大家多查查root对应的host权限是不是%这些。
      • 还有码神笔记中是写了一个数据库配置文件的,我这里没有写,暂时用默认的配置即可。

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月12日
  • 创建了问题 11月21日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题