V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zealinux
V2EX  ›  Docker

Docker 上的 MySQL,发现特别慢,该怎么优化?

  •  
  •   zealinux · 2020-06-07 16:22:45 +08:00 · 5865 次点击
    这是一个创建于 1631 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就用的默认配置,而且是官方的 MySQL 镜像。 开发时就发现卡到不行,测试也发现了。 大家有没有遇到这个问题?

    如果想部署 MySQL Docker 到生产环境上,我要该怎么优化这个?

    (交付给客户的服务都要 Docker 化)


    Ubuntu 18.04 MySQL 8.0

    24 条回复    2021-07-04 12:18:31 +08:00
    anyele
        1
    anyele  
       2020-06-07 17:25:27 +08:00 via Android
    怎么卡,拿出测试数据,就一句卡,什么表达
    zhoushiya
        2
    zhoushiya  
       2020-06-07 18:02:31 +08:00
    先检查一下是用 localhost 还是 127.0.0.1 连接的
    whileFalse
        3
    whileFalse  
       2020-06-07 18:08:17 +08:00 via iPhone
    开发的时候 mysql 部署在研发本机上吗? Windows/Mac 上的 docker 是跑在虚拟机里的,虚拟机的 CPU 限制给的多少。
    shiny
        4
    shiny  
       2020-06-07 18:11:03 +08:00
    我们单表几千万的数据,MySQL8.0 跑在 Docker 里,也没发现卡
    aru
        5
    aru  
       2020-06-20 14:27:01 +08:00
    我司单表 1 亿的数据放在 docker 里面也飞快
    bfme
        6
    bfme  
       2020-07-05 17:05:55 +08:00
    @shiny 老哥 你们 mysql 在 docker 中怎么跑的,mysql 用 docker 起的集群吗?
    shiny
        7
    shiny  
       2020-07-05 17:14:59 +08:00   ❤️ 1
    @bfme 单表就几千万条,单机就能轻松应付了。
    bfme
        8
    bfme  
       2020-07-05 17:18:11 +08:00
    @shiny 不做高可用的吗。。你们出过宕机事件吗?
    shiny
        9
    shiny  
       2020-07-05 17:24:41 +08:00   ❤️ 1
    @bfme 宕机也不是 MySQL 引起的,它太稳了。唯一的问题是复杂场景下 MySQL 不能胜任,改成集群也没用,需要改架构。
    bfme
        10
    bfme  
       2020-07-05 17:32:51 +08:00
    @shiny 虽然不是 docker 引起的,但是要保证 mysql 数据的不丢失, 生产上没有高可用 很慌啊。。不敢这么用。
    shiny
        11
    shiny  
       2020-07-05 17:56:37 +08:00
    @bfme 不会丢的,反而上 docker 之前 mysql 损坏过不少次。这种方式用了四年,两个项目,目前的项目不到一年跑了两千三百万订单,金额五个亿。
    bfme
        12
    bfme  
       2020-07-05 18:04:14 +08:00
    @shiny 🐂🍺
    shiny
        13
    shiny  
       2020-07-05 18:12:04 +08:00   ❤️ 1
    @bfme
    需要看你需求场景,如果一开始数据量比较小,需要专注在业务上,而不是架构:很多人都是操着卖 bf 的心,干着卖白菜的业务;
    一个系统里,最贵的都是用户和流量;哪怕业务量上来了,也可以简单通过升级硬件配置来支持起增长的流量;
    我见到的最多的场景是:架构复杂,用了好几台服务器,但项目最后倒闭了,公司一分钱也不想多出;由于续费成本高,干脆把项目关停了。

    最后,如果你的平台一开始量就这么大就当我没说,还是要好好规划架构的。
    bfme
        14
    bfme  
       2020-07-05 18:14:49 +08:00
    @shiny 项目倒是不大,但是公司出了几次安全事件,服务器被攻击过,搞得老板对安全问题特别敏感,不敢在这块掉以轻心。
    bfme
        15
    bfme  
       2020-07-05 18:16:02 +08:00
    @shiny 现在测试上 mysql 都是跑在 docker,生产还是主从架构。
    网上也没看到过用 docker 跑 mysql 集群的。
    shiny
        16
    shiny  
       2020-07-05 18:21:05 +08:00
    @bfme 美团就是 Docker 里跑 MySQL 集群的。安全这块和是否跑在 Docker 倒关系不大,反而可能更安全,但主要还是消除短板:任何一块短板都可能是攻击的跳板。
    bfme
        17
    bfme  
       2020-07-05 18:23:58 +08:00
    @shiny 有美团 mysql 集群的资料吗?学习学习。
    bfme
        18
    bfme  
       2020-07-05 18:24:31 +08:00
    @shiny 感谢了,其他安全也是需要补足的。
    shiny
        19
    shiny  
       2020-07-05 18:37:33 +08:00
    @bfme 有看到一些分享文章,但没那么详细。还有同程艺龙 QCon 2018 上有个分享《 MySQL 的 Docker 容器化大规模实践》会更详细点。但他们的量级都太大,他们的痛点在一般公司里都不是问题。
    shiny
        20
    shiny  
       2020-07-05 18:38:40 +08:00
    @bfme 真要集群了,不如研究下分布式数据库
    bfme
        21
    bfme  
       2020-07-05 18:56:46 +08:00
    @shiny 🤦‍ 这就又有点深了。。😓
    594duck
        22
    594duck  
       2020-07-06 09:05:51 +08:00 via iPhone
    @aru 表有多宽呀,怎么快法呀,怎么优化的呀,查询多么?求高手指导指导,我这种菜逼不大会呀,我们的订单表就是上亿用的 drds,花钱太多,我学会了好节约钱。

    来高手给说说。

    对了 docker 跑上亿的表,这服务器多少 cpu,多少内存呀。

    用存储了么
    594duck
        23
    594duck  
       2020-07-06 09:07:15 +08:00 via iPhone
    @shiny 上 docker 前和上 docker 后有什么区别呢。数据损坏是什么层面的问题。docker 怎么帮助解决的呀。

    求高手指点一下。我们萌新好学习学习。
    pythonwood
        24
    pythonwood  
       2021-07-04 12:18:31 +08:00
    曾经在 mac 跑 docker,io 非常 si ~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:22 · PVG 03:22 · LAX 11:22 · JFK 14:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.