#!/bin/sh # # Copyright (c) 2024 Peter Holm # # SPDX-License-Identifier: BSD-2-Clause # # A swap test scenario, using swapoff(8) and sort(1) for VM pressure # Out of free pages seen:://people.freebsd.org/~pho/stress/log/log0540.txt . ../default.cfg [ `id -u` -ne 0 ] && echo "Must be root!" && exit 1 [ `swapinfo | wc -l` -eq 1 ] && exit 0 set -u nmax=`sysctl -n hw.ncpu` [ $nmax -gt 4 ] && nmax=4 for i in `jot $nmax`; do timeout -k 2m 1m sort /dev/zero & sleep .`jot -r 1 1 9` done while [ `swapinfo | tail -1 | awk '{sub("%","");print $NF}'` -lt 2 ]; do sleep 1; done start=`date +%s` while [ $((`date +%s` - start)) -lt 300 ]; do while ! swapoff -a > /dev/null 2>&1; do sleep .1; done swapon -a > /dev/null ncur=`pgrep sort | wc -l` if [ $ncur -lt $nmax ]; then echo "Starting $((nmax - ncur)) sort" for i in `jot $((nmax - ncur))`; do timeout -k 2m 1m sort /dev/zero & sleep .`jot -r 1 1 9` done fi done pkill -9 sort wait exit 0