问题描述
有没有一种方法可以指定码头工人可以使用的总RAM和总cpu?我的机器大小为16 GB RAM和4个cpu。我该如何使docker机器利用完整的RAM和底层cpu?
version: '3'
services:
prisma:
image: prismagraphql/prisma:1.34
restart: always
ports:
- "4466:4466"
environment:
JAVA_OPTS: '-Xmx8192m'
prisma_CONfig: |
port: 4466
databases:
default:
connector: mongo
uri: 'mongodb+srv://abc:[email protected]/default_default?retryWrites=true&w=majority'
解决方法
您要问的是默认行为。
来自docs
默认情况下,容器没有资源限制,并且可以使用主机内核调度程序允许的尽可能多的给定资源。
要确保容器获取最少的资源并且不受调度程序的约束,您可以做的是使用资源reservations
以确保容器始终具有最少的必需资源,并且可以选择使用limits
如果您还想强制使用资源的上限。
version: "3.8"
services:
redis:
image: redis:alpine
deploy:
resources:
limits:
cpus: '0.50'
memory: 50M
reservations:
cpus: '0.25'
memory: 20M
在此一般示例中,redis服务被限制为使用不超过50M的内存和0.50(单个内核的50%)的可用处理时间(CPU),并具有20M的内存和0.25 CPU保留时间(一如既往)。