Merge pull request #813 from rajasec/update-kmem-tcp

Adding kernel mem tcp for update command
This commit is contained in:
Aleksa Sarai 2016-05-11 08:31:47 +00:00
commit 9bc97e2291
3 changed files with 27 additions and 6 deletions

View File

@ -13,7 +13,8 @@ accepted format is as follow (unchanged values can be omitted):
"limit": 0, "limit": 0,
"reservation": 0, "reservation": 0,
"swap": 0, "swap": 0,
"kernel": 0 "kernel": 0,
"kernelTCP": 0
}, },
"cpu": { "cpu": {
"shares": 0, "shares": 0,
@ -38,7 +39,8 @@ other options are ignored.
--cpu-share CPU shares (relative weight vs. other containers) --cpu-share CPU shares (relative weight vs. other containers)
--cpuset-cpus CPU(s) to use --cpuset-cpus CPU(s) to use
--cpuset-mems Memory node(s) to use --cpuset-mems Memory node(s) to use
--kernel-memory Kernel memory limit (in bytes) for tcp buffer --kernel-memory Kernel memory limit (in bytes)
--kernel-memory-tcp Kernel memory limit (in bytes) for tcp buffer
--memory Memory limit (in bytes) --memory Memory limit (in bytes)
--memory-reservation Memory reservation or soft_limit (in bytes) --memory-reservation Memory reservation or soft_limit (in bytes)
--memory-swap Total memory usage (memory + swap); set `-1` to enable unlimited swap --memory-swap Total memory usage (memory + swap); set `-1` to enable unlimited swap

View File

@ -34,7 +34,8 @@ function setup() {
"memory": { "memory": {
"limit": 33554432, "limit": 33554432,
"reservation": 25165824, "reservation": 25165824,
"kernel": 16777216 "kernel": 16777216,
"kernelTCP": 11534336
}, },
"cpu": { "cpu": {
"shares": 100, "shares": 100,
@ -75,6 +76,7 @@ function check_cgroup_value() {
check_cgroup_value $CGROUP_CPU "cpu.shares" 100 check_cgroup_value $CGROUP_CPU "cpu.shares" 100
check_cgroup_value $CGROUP_CPUSET "cpuset.cpus" 0 check_cgroup_value $CGROUP_CPUSET "cpuset.cpus" 0
check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 16777216 check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 16777216
check_cgroup_value $CGROUP_MEMORY "memory.kmem.tcp.limit_in_bytes" 11534336
check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 33554432 check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 33554432
check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 25165824 check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 25165824
@ -128,13 +130,19 @@ function check_cgroup_value() {
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 50331648 check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 50331648
# update kernel memory tcp limit
run "$RUNC" --root $UPDATE_TEST_RUNC_ROOT update test_update --kernel-memory-tcp 41943040
[ "$status" -eq 0 ]
check_cgroup_value $CGROUP_MEMORY "memory.kmem.tcp.limit_in_bytes" 41943040
# Revert to the test initial value via json on stding # Revert to the test initial value via json on stding
run "$RUNC" --root $UPDATE_TEST_RUNC_ROOT update -r - test_update <<EOF run "$RUNC" --root $UPDATE_TEST_RUNC_ROOT update -r - test_update <<EOF
{ {
"memory": { "memory": {
"limit": 33554432, "limit": 33554432,
"reservation": 25165824, "reservation": 25165824,
"kernel": 16777216 "kernel": 16777216,
"kernelTCP": 11534336
}, },
"cpu": { "cpu": {
"shares": 100, "shares": 100,
@ -154,19 +162,21 @@ EOF
check_cgroup_value $CGROUP_CPU "cpu.shares" 100 check_cgroup_value $CGROUP_CPU "cpu.shares" 100
check_cgroup_value $CGROUP_CPUSET "cpuset.cpus" 0 check_cgroup_value $CGROUP_CPUSET "cpuset.cpus" 0
check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 16777216 check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 16777216
check_cgroup_value $CGROUP_MEMORY "memory.kmem.tcp.limit_in_bytes" 11534336
check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 33554432 check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 33554432
check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 25165824 check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 25165824
# redo all the changes at once # redo all the changes at once
run "$RUNC" --root $UPDATE_TEST_RUNC_ROOT update test_update --blkio-weight 500 \ run "$RUNC" --root $UPDATE_TEST_RUNC_ROOT update test_update --blkio-weight 500 \
--cpu-period 900000 --cpu-quota 600000 --cpu-share 200 --memory 67108864 \ --cpu-period 900000 --cpu-quota 600000 --cpu-share 200 --memory 67108864 \
--memory-reservation 33554432 --kernel-memory 50331648 --memory-reservation 33554432 --kernel-memory 50331648 --kernel-memory-tcp 41943040
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
check_cgroup_value $CGROUP_BLKIO "blkio.weight" 500 check_cgroup_value $CGROUP_BLKIO "blkio.weight" 500
check_cgroup_value $CGROUP_CPU "cpu.cfs_period_us" 900000 check_cgroup_value $CGROUP_CPU "cpu.cfs_period_us" 900000
check_cgroup_value $CGROUP_CPU "cpu.cfs_quota_us" 600000 check_cgroup_value $CGROUP_CPU "cpu.cfs_quota_us" 600000
check_cgroup_value $CGROUP_CPU "cpu.shares" 200 check_cgroup_value $CGROUP_CPU "cpu.shares" 200
check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 50331648 check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 50331648
check_cgroup_value $CGROUP_MEMORY "memory.kmem.tcp.limit_in_bytes" 41943040
check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 67108864 check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 67108864
check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 33554432 check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 33554432
@ -176,7 +186,8 @@ EOF
"memory": { "memory": {
"limit": 33554432, "limit": 33554432,
"reservation": 25165824, "reservation": 25165824,
"kernel": 16777216 "kernel": 16777216,
"kernelTCP": 11534336
}, },
"cpu": { "cpu": {
"shares": 100, "shares": 100,
@ -200,6 +211,7 @@ EOF
check_cgroup_value $CGROUP_CPU "cpu.shares" 100 check_cgroup_value $CGROUP_CPU "cpu.shares" 100
check_cgroup_value $CGROUP_CPUSET "cpuset.cpus" 0 check_cgroup_value $CGROUP_CPUSET "cpuset.cpus" 0
check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 16777216 check_cgroup_value $CGROUP_MEMORY "memory.kmem.limit_in_bytes" 16777216
check_cgroup_value $CGROUP_MEMORY "memory.kmem.tcp.limit_in_bytes" 11534336
check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 33554432 check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 33554432
check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 25165824 check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 25165824
} }

View File

@ -77,6 +77,10 @@ other options are ignored.
}, },
cli.StringFlag{ cli.StringFlag{
Name: "kernel-memory", Name: "kernel-memory",
Usage: "Kernel memory limit (in bytes)",
},
cli.StringFlag{
Name: "kernel-memory-tcp",
Usage: "Kernel memory limit (in bytes) for tcp buffer", Usage: "Kernel memory limit (in bytes) for tcp buffer",
}, },
cli.StringFlag{ cli.StringFlag{
@ -104,6 +108,7 @@ other options are ignored.
Reservation: u64Ptr(0), Reservation: u64Ptr(0),
Swap: u64Ptr(0), Swap: u64Ptr(0),
Kernel: u64Ptr(0), Kernel: u64Ptr(0),
KernelTCP: u64Ptr(0),
}, },
CPU: &specs.CPU{ CPU: &specs.CPU{
Shares: u64Ptr(0), Shares: u64Ptr(0),
@ -153,6 +158,7 @@ other options are ignored.
"cpu-quota": r.CPU.Quota, "cpu-quota": r.CPU.Quota,
"cpu-share": r.CPU.Shares, "cpu-share": r.CPU.Shares,
"kernel-memory": r.Memory.Kernel, "kernel-memory": r.Memory.Kernel,
"kernel-memory-tcp": r.Memory.KernelTCP,
"memory": r.Memory.Limit, "memory": r.Memory.Limit,
"memory-reservation": r.Memory.Reservation, "memory-reservation": r.Memory.Reservation,
"memory-swap": r.Memory.Swap, "memory-swap": r.Memory.Swap,
@ -175,6 +181,7 @@ other options are ignored.
config.Cgroups.Resources.CpusetCpus = *r.CPU.Cpus config.Cgroups.Resources.CpusetCpus = *r.CPU.Cpus
config.Cgroups.Resources.CpusetMems = *r.CPU.Mems config.Cgroups.Resources.CpusetMems = *r.CPU.Mems
config.Cgroups.Resources.KernelMemory = int64(*r.Memory.Kernel) config.Cgroups.Resources.KernelMemory = int64(*r.Memory.Kernel)
config.Cgroups.Resources.KernelMemoryTCP = int64(*r.Memory.KernelTCP)
config.Cgroups.Resources.Memory = int64(*r.Memory.Limit) config.Cgroups.Resources.Memory = int64(*r.Memory.Limit)
config.Cgroups.Resources.MemoryReservation = int64(*r.Memory.Reservation) config.Cgroups.Resources.MemoryReservation = int64(*r.Memory.Reservation)
config.Cgroups.Resources.MemorySwap = int64(*r.Memory.Swap) config.Cgroups.Resources.MemorySwap = int64(*r.Memory.Swap)