gpt4 book ai didi

docker - 让 docker build --memory-swap=20g 使用可用的交换空间?

转载 作者:行者123 更新时间:2023-12-05 07:17:08 32 4
gpt4 key购买 nike

我运行了 free -h 并看到我有 29G 的交换空间。

              total        used        free      shared  buff/cache   available
Mem: 15G 6.9G 8.8G 17M 223M 8.9G
Swap: 29G 2.0M 29G

我还启用了 100 swappiness。

$ sudo sysctl vm.swappiness=100
vm.swappiness = 100
$ cat /proc/sys/vm/swappiness
100

但是,docker build --memory-swap=20g 似乎没有使用交换空间。这是整个 docker 构建过程中 htop 的输出。

1  [||||||||||||||||                                                           18.7%] 
2 [||||||| 7.3%]
3 [|||||||||||||||||||||| 26.5%]
4 [||||||||||||||| 18.0%]
Mem[||||||||||||||||||||||||||||||||||| 6.47G/15.9G]
Swp[| 2.00M/29.6G]

这是 docker 构建命令:

docker build --build-arg NODE_OPTIONS="--max-old-space-size=325" \ 
--memory=600m --memory-swap=20g \
--cpu-period=100000 --cpu-quota=50000 \
--no-cache --tag farm_app_image:latest --file Dockerfile .

docker build 似乎用完了 RAM,因为构建的内部进程 (NodeJS) 用完了堆空间并崩溃了。此外,在崩溃之前内存已达到最大:

shaun@DESKTOP-5T629JB:/mnt/c/Users/bigfo$ docker ps -q | xargs  docker stats --no-stream
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
66bdf8efb492 charming_maxwell 51.72% 562.2MiB / 600MiB 93.70% 46.8MB / 1.53MB 277MB / 230MB 94

为什么不使用交换空间就用完 RAM?我们怎样才能让它使用可用的交换空间?

最佳答案

也许您应该尝试使用 --privileged 标志运行它。

docker run -ti --privileged yourimage

但请确保您知道自己在做什么。

您还应该阅读 docker-tips-privilaged-flag

关于docker - 让 docker build --memory-swap=20g 使用可用的交换空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58895103/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com