From 8c8aaf7dd1f816d5f60930bf6189f7d156277970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=BE=D0=BD=D0=B8=D0=B4=20=D0=AE=D1=80=D1=8C?= =?UTF-8?q?=D0=B5=D0=B2=20=28Leonid=20Yuriev=29?= Date: Thu, 19 Jun 2025 19:11:46 +0300 Subject: [PATCH] =?UTF-8?q?mdbx-tests:=20=D1=8F=D0=B2=D0=BD=D0=BE=D0=B5=20?= =?UTF-8?q?NUMA-=D1=80=D0=B0=D1=81=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B2=20battery/tmux-=D1=82=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/battery-tmux.sh | 50 +++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 12 deletions(-) diff --git a/test/battery-tmux.sh b/test/battery-tmux.sh index 65c3178e..367f007b 100755 --- a/test/battery-tmux.sh +++ b/test/battery-tmux.sh @@ -3,36 +3,62 @@ # Леонид Юрьев aka Leonid Yuriev # SPDX-License-Identifier: Apache-2.0 -TEST="./test/stochastic.sh --skip-make --db-upto-gb 32" +TMUX=tmux +DIR="$(dirname ${BASH_SOURCE[0]})" +TEST="${DIR}/stochastic.sh --skip-make --db-upto-gb 32" PREFIX="/dev/shm/mdbxtest-" -tmux kill-session -t mdbx +NUMACTL="$(which numactl 2>-)" +NUMALIST=() +NUMAIDX=0 +if [ -n "${NUMACTL}" -a $(${NUMACTL} --hardware | grep 'node [0-9]\+ cpus' | wc -l) -gt 1 ]; then + NUMALIST=($(${NUMACTL} --hardware | grep 'node [0-9]\+ cpus' | cut -d ' ' -f 2)) +fi + +function test_numacycle { + NUMAIDX=$((NUMAIDX + 1)) + if [ ${NUMAIDX} -ge ${#NUMALIST[@]} ]; then + NUMAIDX=0 + fi +} + +function test_numanode { + if [[ ${#NUMALIST[@]} > 1 ]]; then + echo "${TEST} --numa ${NUMALIST[$NUMAIDX]}" + else + echo "${TEST}" + fi +} + +${TMUX} kill-session -t mdbx rm -rf ${PREFIX}* # git clean -x -f -d && make test-assertions -tmux -f ./test/tmux.conf new-session -d -s mdbx htop +${TMUX} -f "${DIR}/tmux.conf" new-session -d -s mdbx htop W=0 for ps in min 4k max; do for from in 1 30000; do for n in 0 1 2 3; do - CMD="${TEST} --delay $((n * 7)) --page-size ${ps} --from ${from} --dir ${PREFIX}page-${ps}.from-${from}.${n}" + CMD="$(test_numanode) --delay $((n * 7)) --page-size ${ps} --from ${from} --dir ${PREFIX}page-${ps}.from-${from}.${n}" if [ $n -eq 0 ]; then - tmux new-window -t mdbx:$((++W)) -n "page-${ps}.from-${from}" -k -d "$CMD" - tmux select-layout -E tiled + ${TMUX} new-window -t mdbx:$((++W)) -n "page-${ps}.from-${from}" -k -d "$CMD" + ${TMUX} select-layout -E tiled else - tmux split-window -t mdbx:$W -l 20% -d $CMD + ${TMUX} split-window -t mdbx:$W -l 20% -d $CMD fi + test_numacycle done for n in 0 1 2 3; do - CMD="${TEST} --delay $((3 + n * 7)) --extra --page-size ${ps} --from ${from} --dir ${PREFIX}page-${ps}.from-${from}.${n}-extra" + CMD="$(test_numanode) --delay $((3 + n * 7)) --extra --page-size ${ps} --from ${from} --dir ${PREFIX}page-${ps}.from-${from}.${n}-extra" if [ $n -eq 0 ]; then - tmux new-window -t mdbx:$((++W)) -n "page-${ps}.from-${from}-extra" -k -d "$CMD" - tmux select-layout -E tiled + ${TMUX} new-window -t mdbx:$((++W)) -n "page-${ps}.from-${from}-extra" -k -d "$CMD" + ${TMUX} select-layout -E tiled else - tmux split-window -t mdbx:$W -l 20% -d $CMD + ${TMUX} split-window -t mdbx:$W -l 20% -d $CMD fi + test_numacycle done done done -tmux attach -t mdbx +${TMUX} attach -t mdbx