+++ /dev/null
-#!/usr/bin/env bash
-# SPDX-License-Identifier: LGPL-2.1-or-later
-# Don't use set -x here, since it generates a lot of output and slows
-# the script down, causing unexpected test fails.
-set -eu
-set -o pipefail
-
-PAGE_SIZE=$(getconf PAGE_SIZE)
-BLOAT_ITERATION_TARGET=$((100 << 20)) # 100 MB
-BLOAT_HOLDER=()
-PID="$$"
-
-function bloat {
- local set_size mem_usage target_mem_size
-
- set_size=$(cut -d " " -f2 "/proc/$PID/statm")
- mem_usage=$((set_size * PAGE_SIZE))
- target_mem_size=$((mem_usage + $1))
-
- BLOAT_HOLDER=()
- while [[ "$mem_usage" -lt "$target_mem_size" ]]; do
- echo "target $target_mem_size"
- echo "mem usage $mem_usage"
- BLOAT_HOLDER+=("$(printf "=%0.s" {1..1000000})")
- set_size=$(cut -d " " -f2 "/proc/$PID/statm")
- mem_usage=$((set_size * PAGE_SIZE))
- done
-}
-
-function run {
- local arr=()
-
- while :; do
- bloat "$BLOAT_ITERATION_TARGET"
- arr+=("${BLOAT_HOLDER[@]}")
- sleep 1
- done
-}
-
-run
Description=Create a lot of memory pressure
[Service]
-# A VERY small memory.high will cause the script (trying to use a lot of memory)
+# A VERY small memory.high will cause the 'stress' (trying to use a lot of memory)
# to throttle and be put under heavy pressure.
-MemoryHigh=5M
+MemoryHigh=3M
Slice=testsuite-55-workload.slice
-ExecStart=/usr/lib/systemd/tests/testdata/units/testsuite-55-slowgrowth.sh
+ExecStart=stress --timeout 3m --vm 10 --vm-bytes 200M --vm-keep --vm-stride 1
Description=Create some memory pressure
[Service]
-MemoryHigh=6M
+MemoryHigh=12M
Slice=testsuite-55-workload.slice
-ExecStart=/usr/lib/systemd/tests/testdata/units/testsuite-55-slowgrowth.sh
+ExecStart=stress --timeout 3m --vm 10 --vm-bytes 200M --vm-keep --vm-stride 1
if ! systemctl status testsuite-55-testbloat.service; then
break
fi
+ oomctl
sleep 2
done
if ! systemctl --machine "testuser@.host" --user status testsuite-55-testbloat.service; then
break
fi
+ oomctl
sleep 2
done
if ! systemctl status testsuite-55-testmunch.service; then
break
fi
+ oomctl
sleep 2
done