Add --cpus flag to control cpu resources
This fix tries to address the proposal raised in 27921 and add `--cpus` flag for `docker run/create`. Basically, `--cpus` will allow user to specify a number (possibly partial) about how many CPUs the container will use. For example, on a 2-CPU system `--cpus 1.5` means the container will take 75% (1.5/2) of the CPU share. This fix adds a `NanoCPUs` field to `HostConfig` since swarmkit alreay have a concept of NanoCPUs for tasks. The `--cpus` flag will translate the number into reused `NanoCPUs` to be consistent. This fix adds integration tests to cover the changes. Related docs (`docker run` and Remote APIs) have been updated. This fix fixes 27921. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
@@ -19,6 +19,7 @@ docker-create - Create a new container
|
||||
[**--cpu-quota**[=*0*]]
|
||||
[**--cpu-rt-period**[=*0*]]
|
||||
[**--cpu-rt-runtime**[=*0*]]
|
||||
[**--cpus**[=*0.0*]]
|
||||
[**--cpuset-cpus**[=*CPUSET-CPUS*]]
|
||||
[**--cpuset-mems**[=*CPUSET-MEMS*]]
|
||||
[**--device**[=*[]*]]
|
||||
@@ -154,6 +155,9 @@ two memory nodes.
|
||||
|
||||
The sum of all runtimes across containers cannot exceed the amount allotted to the parent cgroup.
|
||||
|
||||
**--cpus**=0.0
|
||||
Number of CPUs. The default is *0.0*.
|
||||
|
||||
**--device**=[]
|
||||
Add a host device to the container (e.g. --device=/dev/sdc:/dev/xvdc:rwm)
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@ docker-run - Run a command in a new container
|
||||
[**--cpu-quota**[=*0*]]
|
||||
[**--cpu-rt-period**[=*0*]]
|
||||
[**--cpu-rt-runtime**[=*0*]]
|
||||
[**--cpus**[=*0.0*]]
|
||||
[**--cpuset-cpus**[=*CPUSET-CPUS*]]
|
||||
[**--cpuset-mems**[=*CPUSET-MEMS*]]
|
||||
[**-d**|**--detach**]
|
||||
@@ -208,6 +209,9 @@ to the quota you specify.
|
||||
|
||||
The sum of all runtimes across containers cannot exceed the amount allotted to the parent cgroup.
|
||||
|
||||
**--cpus**=0.0
|
||||
Number of CPUs. The default is *0.0* which means no limit.
|
||||
|
||||
**-d**, **--detach**=*true*|*false*
|
||||
Detached mode: run the container in the background and print the new container ID. The default is *false*.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user