mirror of
https://github.com/systemd/systemd.git
synced 2024-12-28 11:21:59 +03:00
41 lines
1.1 KiB
Bash
Executable File
41 lines
1.1 KiB
Bash
Executable File
#!/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
|