2014-11-28 6 views
5

Sono consapevole del fatto che è possibile limitare le risorse allocate a un contenitore durante il provisioning utilizzando la finestra mobile con i flag -c e -m per CPU e memoria.Come modificare le risorse allocate a un contenitore in fase di esecuzione?

Tuttavia, c'è un modo per modificare dinamicamente queste risorse allocate ai contenitori (dopo che sono state predisposte) e senza ridistribuire lo stesso contenitore con le risorse modificate?

risposta

1

che potrebbero essere in arrivo per la finestra mobile 1.10 o 1.11 (Q1 2016): PR 15078 sta attuando (dicembre 2015) il supporto per la modifica risorse (CPU inclusa) sia per il arrestato che per il contenitore.

Aggiornamento 2016: è part of docker 1.10 e documentato in docker update (PR 15078).

Abbiamo deciso di consentire di impostare ciò che abbiamo chiamato risorse, che consiste di cose cgroup per ora, quindi il seguente PR #18073.
Gli unici elementi mutabili di un contenitore si trovano in HostConfig e precisamente in Risorse (vedere struct).

resources := runconfig.Resources{ 
     BlkioWeight:  *flBlkioWeight, 
     CpusetCpus:  *flCpusetCpus, <==== 
     CpusetMems:  *flCpusetMems, <==== 
     CPUShares:   *flCPUShares,  <==== 
     Memory:   flMemory, 
     MemoryReservation: memoryReservation, 
     MemorySwap:  memorySwap, 
     KernelMemory:  kernelMemory, 
     CPUPeriod:   *flCPUPeriod, 
     CPUQuota:   *flCPUQuota, 
    } 
  • Il comando deve essere set (alla fine: update).
  • Le modifiche consentite vengono passate come flag: ad es. --memory=1Gb --cpushare=… (come fa questa PR).
  • C'è un flag per ogni attributo della struttura Resources (e non più, non di meno).

Nota che apportare modifiche tramite docker set dovrebbero persistere.
cioè quei cambiamenti sarebbero permanenti (aggiornato in JSON del contenitore)

14

Al momento (Docker v1.11.1) ha il comando docker update (view docs). Con questo è possibile modificare le risorse allocate al volo.

Usage: docker update [OPTIONS] CONTAINER [CONTAINER...] 

Update configuration of one or more containers 

    --blkio-weight   Block IO (relative weight), between 10 and 1000 
    --cpu-shares   CPU shares (relative weight) 
    --cpu-period   Limit CPU CFS (Completely Fair Scheduler) period 
    --cpu-quota    Limit CPU CFS (Completely Fair Scheduler) quota 
    --cpuset-cpus   CPUs in which to allow execution (0-3, 0,1) 
    --cpuset-mems   MEMs in which to allow execution (0-3, 0,1) 
    --help     Print usage 
    --kernel-memory   Kernel memory limit 
    -m, --memory   Memory limit 
    --memory-reservation Memory soft limit 
    --memory-swap   Swap limit equal to memory plus swap: '-1' to enable unlimited swap 
    --restart    Restart policy to apply when a container exits 
Problemi correlati