LeeReamond
V2EX  ›  问与答

有关 docker 主服务会占用多少内存

  •  1
     
  •   LeeReamond · Feb 23, 2022 · 3331 views
    This topic created in 1626 days ago, the information mentioned may be changed or developed.

    1G 内存的虚拟机,跑了个 ubuntu 系统,上面还有 mysql ,感觉内存有些捉襟见肘了,干什么都不方便。想知道有没有大佬观察过 docker 主服务占用内存的情况,是否将 mysql 等等所有服务全迁移到 docker 里会用起来更方便一些

    10 replies    2024-07-16 00:03:31 +08:00
    Ariver
        1
    Ariver  
       Feb 23, 2022
    呃,docker 并没有节省内存的功能。
    des
        2
    des  
       Feb 23, 2022 via iPhone
    塞到 docker 并不会节省你的内存
    不过你可以试试换成 Postgres ,据说这个比较省内存
    plko345
        3
    plko345  
       Feb 23, 2022 via Android   ❤️ 1
    好像至少会占 100 多 M ,有的服务器上更多,可能和容器数量有关,现在有 podman 什么的,可以不需要用 docker daemon
    vicalloy
        4
    vicalloy  
       Feb 23, 2022
    mysql 的默认配置非常耗内存,刚启动的内存占用就要近 400M 。
    相对来说 postgresql 的内存占用率要低很多,小内存可以考虑用 postgresql 。

    注:
    可以修改 mysql 的设置,设置 performance_schema = OFF 可以降低一些内存。
    Suaxi
        5
    Suaxi  
       Feb 23, 2022
    之前试过 1G 内存,用 docker 跑 mysql 8.0 ,很难; pg 如果有用到 postgis 插件,数据量大了之后也很占内存
    LeeReamond
        6
    LeeReamond  
    OP
       Feb 23, 2022 via Android
    @Ariver 建议重读原标题,我的意思是,如果 docker 主服务占用内存不多,全部服务托管可以提高管理便利性,如果内存占用很多那就无法托管
    sampeng
        7
    sampeng  
       Feb 23, 2022
    @LeeReamond docker 最大的问题是会损耗 10-15%的性能,以及 java 在 docker 里面跑非常不友好。举个例子。。大多数 java 的程序平常跑的时候只需要 1-2 个核心的 10-30%。。但是他启动的时候需要 60%。这个时候写 limit 就会特别难受。。
    julyclyde
        8
    julyclyde  
       Feb 25, 2022
    @sampeng 啊?有这么高损耗吗?啥原理呢?
    sampeng
        9
    sampeng  
       Feb 25, 2022
    @julyclyde 损失 10-15%的性能忽略不计。。。docker 是用来方便管理的
    gosky
        10
    gosky  
       Jul 16, 2024
    command: mysqld --skip-performance-schema --skip-mysqlx --innodb-buffer-pool-size=64M
    可以节省一部分内存
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2746 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 13:52 · PVG 21:52 · LAX 06:52 · JFK 09:52
    ♥ Do have faith in what you're doing.