test: make TEST-56-OOMD service unit files static
This commit is contained in:
parent
f6358f8931
commit
311e3d4637
|
@ -0,0 +1,9 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Create a lot of memory pressure
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
# A very small memory.high will cause the script (trying to use a lot of memory)
|
||||||
|
# to throttle and be put under heavy pressure
|
||||||
|
MemoryHigh=2M
|
||||||
|
Slice=testsuite-56-workload.slice
|
||||||
|
ExecStart=/usr/lib/systemd/tests/testdata/units/testsuite-56-slowgrowth.sh
|
|
@ -0,0 +1,6 @@
|
||||||
|
[Unit]
|
||||||
|
Description=No memory pressure
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Slice=testsuite-56-workload.slice
|
||||||
|
ExecStart=sleep infinity
|
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Test slice for memory pressure kills
|
||||||
|
|
||||||
|
[Slice]
|
||||||
|
CPUAccounting=true
|
||||||
|
MemoryAccounting=true
|
||||||
|
IOAccounting=true
|
||||||
|
TasksAccounting=true
|
||||||
|
ManagedOOMMemoryPressure=kill
|
||||||
|
ManagedOOMMemoryPressureLimitPercent=50%
|
|
@ -14,54 +14,26 @@ if [[ "$cgroup_type" != *"cgroup2"* ]] && [[ "$cgroup_type" != *"0x63677270"* ]]
|
||||||
fi
|
fi
|
||||||
[[ -e /skipped ]] && exit 0 || true
|
[[ -e /skipped ]] && exit 0 || true
|
||||||
|
|
||||||
cat > /etc/systemd/system/testworkload.slice <<EOF
|
systemctl start testsuite-56-testbloat.service
|
||||||
[Slice]
|
systemctl start testsuite-56-testchill.service
|
||||||
CPUAccounting=true
|
|
||||||
MemoryAccounting=true
|
|
||||||
IOAccounting=true
|
|
||||||
TasksAccounting=true
|
|
||||||
ManagedOOMMemoryPressure=kill
|
|
||||||
ManagedOOMMemoryPressureLimitPercent=50%
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Create a lot of memory pressure by setting memory.high to a very small value
|
|
||||||
cat > /etc/systemd/system/testbloat.service <<EOF
|
|
||||||
[Service]
|
|
||||||
MemoryHigh=2M
|
|
||||||
Slice=testworkload.slice
|
|
||||||
ExecStart=/usr/lib/systemd/tests/testdata/units/testsuite-56-slowgrowth.sh
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# This generates no memory pressure
|
|
||||||
cat > /etc/systemd/system/testchill.service <<EOF
|
|
||||||
[Service]
|
|
||||||
MemoryHigh=2M
|
|
||||||
Slice=testworkload.slice
|
|
||||||
ExecStart=sleep infinity
|
|
||||||
EOF
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
|
||||||
|
|
||||||
systemctl start testbloat.service
|
|
||||||
systemctl start testchill.service
|
|
||||||
|
|
||||||
# Verify systemd-oomd is monitoring the expected units
|
# Verify systemd-oomd is monitoring the expected units
|
||||||
oomctl | grep "/testworkload.slice"
|
oomctl | grep "/testsuite-56-workload.slice"
|
||||||
oomctl | grep "50%"
|
oomctl | grep "50%"
|
||||||
|
|
||||||
# systemd-oomd watches for elevated pressure for 30 seconds before acting.
|
# systemd-oomd watches for elevated pressure for 30 seconds before acting.
|
||||||
# It can take time to build up pressure so either wait 5 minutes or for the service to fail.
|
# It can take time to build up pressure so either wait 5 minutes or for the service to fail.
|
||||||
timeout=$(date -ud "5 minutes" +%s)
|
timeout=$(date -ud "5 minutes" +%s)
|
||||||
while [[ $(date -u +%s) -le $timeout ]]; do
|
while [[ $(date -u +%s) -le $timeout ]]; do
|
||||||
if ! systemctl status testbloat.service; then
|
if ! systemctl status testsuite-56-testbloat.service; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
sleep 15
|
sleep 15
|
||||||
done
|
done
|
||||||
|
|
||||||
# testbloat should be killed and testchill should be fine
|
# testbloat should be killed and testchill should be fine
|
||||||
if systemctl status testbloat.service; then exit 42; fi
|
if systemctl status testsuite-56-testbloat.service; then exit 42; fi
|
||||||
if ! systemctl status testchill.service; then exit 24; fi
|
if ! systemctl status testsuite-56-testchill.service; then exit 24; fi
|
||||||
|
|
||||||
systemd-analyze log-level info
|
systemd-analyze log-level info
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue