“ docker run --memory”不占很大的页面

问题描述 投票:1回答:1

我在使用“ docker run --memory”时遇到两个问题。docker以特权模式运行。我想知道是否会出现这种情况。

我正在容器中运行基于DPDK的应用程序。我的服务器总共有128G内存,而我的容器内存资源限制为4G。我可以在docker stats中看到它。

            CONTAINER ID        NAME                     CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS                       [0/18152]
            4deda4634b22        my_docker                38.12%              1.455GiB / 4GiB       36.37%              1.53kB / 0B         1.94GB / 755MB      69

第一个问题是我在docker中看到完整的128G内存。

我的应用程序,读取主机的可用内存,并根据该应用程序分配一个总内存的一部分。例如。我在docker中拥有两个应用程序。如果docker内部的总可用内存为6G。每个应用程序都可以使用3G内存。如果Docker总内存限制为4G。每个应用程序都假定可以使用2G。这种分配方案在docker中不起作用,因为它可以看到所有主机内存。有什么解决方法吗?

root@4deda4634b22:/# free -m
              total        used        free      shared  buff/cache   available
              Mem:         128961       35277       75558        2051       18125       90019
              Swap:        131037           5      131032
root@4deda4634b22:/#

第二个问题,我看到即使在docker内存被限制为4G之后。应用程序能够分配32G大页面内存以及其他非大页面内存。是预期的吗?docker是否运行--memory选项仅适用于非巨大页面内存?

root@server# docker exec -ti my_docker bash
root@4deda4634b22:/#
root@4deda4634b22:/# ps aux |grep riot
root       893 17.2  0.0 68345740 105260 pts/0 Sl   05:54   1:02 /app/riot   <<<<<< application.


root@4deda4634b22:/# cat /proc/meminfo |grep -i huge
AnonHugePages:    909312 kB
ShmemHugePages:        0 kB
**HugePages_Total:      32**
**HugePages_Free:        0**  
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:    1048576 kB

root@4deda4634b22:/# ls -rlt /mnt/huge/*  | wc -l
32
docker dpdk
1个回答
0
投票

我通常通过docker run -it --privileged -v /sys/bus/pci/drivers:/sys/bus/pci/drivers -v /sys/kernel/mm/hugepages:/sys/kernel/mm/hugepages -v /sys/devices/system/node:/sys/devices/system/node -v /dev:/dev传递对大型页面和vfio设备的访问权限。

看起来您好像丢失了一样。

© www.soinside.com 2019 - 2024. All rights reserved.