请教一个 lxc 容器的内存使用问题 - V2EX
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
zhwguest

请教一个 lxc 容器的内存使用问题

  •  
  •   zhwguest Dec 27, 2023 2097 views
    This topic created in 871 days ago, the information mentioned may be changed or developed.

    我有一台比较低配置的闲置云主机,里面运行 lxc 容器。

    我今天心血来潮,看了一下内存使用情况,觉得有些不可理解。

    从宿主机看:

    root@ecs-yun31:~$ free -m total used free shared buff/cache available Mem: 1685 1027 94 167 563 307 Swap: 0 0 0 

    从容器里看:

    user@lxc01:~$ free -m total used free shared buff/cache available Mem: 1685 493 835 164 355 1191 Swap: 0 0 0 

    是的,没有看错,宿主机内存不到 2G ,总数匹配上了。但是容器里面看到的 available 的内存是 1.2G ,而在宿主机看到的 available 的内存只有 300M 。 也就是说,感觉容器预留了几百兆的内存,这些内存没有被容器使用,但是却被预留了,从宿主机的角度看,这是不能被使用了的。 感觉这样是非常浪费的,不合理的。不知道是什么地方配置了这种行为呢?按说和宿主机一起共享内存多好,大家都有得用。

    3 replies    2024-01-01 20:48:01 +08:00
    iBugOne
        1
    iBugOne  
       Dec 27, 2023   6
    实际情况是,容器里的 available 是假的,是通过 total / used / shared / buff/cache 等算出来的,而容器里看不到容器外的进程,所以容器里看到的 used / shared / buff/cache 就比容器外要少,算出来的 available 就更多,这样就出现了偏差,因此容器里的 available (还有 free )都是绝对不能信的。

    底层原因是,free 命令是读 /proc/meminfo 的,而这个古老的 procfs 接口并没有很好地兼容现代的容器技术。如果你的 lxc/lxd 够新的话,你就能看到容器里的 /proc/meminfo 是一个 fuse.lxcfs mount 在上面的,lxc 通过这个方式覆盖容器里看到的 /proc/meminfo (以及 procfs 下的其他一堆“文件”),能让容器里看到的这些系统资源使用情况更加准确。如果要看整个系统的资源使用情况,请从 host 上直接看,不要纠结容器里显示的东西。
    zhwguest
        2
    zhwguest  
    OP
       Dec 27, 2023
    @iBugOne 太感谢了~~~
    julyclyde
        3
    julyclyde  
       Jan 1, 2024
    可以用 lxcfs
    About     Help     Advertise     Blog     API     FAQ     Solana     892 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 302ms UTC 20:22 PVG 04:22 LAX 13:22 JFK 16:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86