Everything for the ultix-streaming (VM 5111, pfv-tsys5) performance pass: full report + host audit results, staged/gated configs, guest prep + host one-shot + post-reboot-fix + netcheck lifecycle scripts, grow-root manual runbook, rolling tracking HUD, questions v1, and the gateway boot-race hardening units. Applied and verified live 2026-08-31; open work is tracked in Redmine project 55 as #601-#607. [#602] 💘 Generated with Crush Assisted-by: Crush:glm-5.2
46 lines
1.8 KiB
Bash
Executable File
46 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# UKRRS day/night resource profile (REPORT.md section 5.5).
|
|
# Runtime-only changes (set-property --runtime + sysctl): a reboot always
|
|
# lands safely in day mode (slice unit files carry the day defaults).
|
|
set -euo pipefail
|
|
mode=${1:?usage: ukrrs-daynight.sh day|night}
|
|
CONF=/etc/ukrrs/daynight.conf
|
|
[ -r "$CONF" ] && . "$CONF"
|
|
|
|
: "${DATA2_DEV:=/dev/sdb}"
|
|
: "${BATCH_WEIGHT_DAY:=25}"; : "${BATCH_WEIGHT_NIGHT:=400}"
|
|
: "${BATCH_CPUS_DAY:=0-5}"; : "${BATCH_CPUS_NIGHT:=0-6}"
|
|
: "${BATCH_HIGH_DAY:=12G}"; : "${BATCH_HIGH_NIGHT:=30G}"
|
|
: "${GW_WEIGHT_DAY:=900}"; : "${GW_WEIGHT_NIGHT:=500}"
|
|
: "${DATA2_RA_DAY:=256}"; : "${DATA2_RA_NIGHT:=2048}"
|
|
: "${DIRTY_DAY:=1073741824}"; : "${DIRTY_NIGHT:=2147483648}"
|
|
: "${DIRTY_BG_DAY:=268435456}"; : "${DIRTY_BG_NIGHT:=536870912}"
|
|
|
|
log() { echo "[ukrrs-daynight] $*"; }
|
|
setprop() { systemctl set-property --runtime "$@"; }
|
|
setra() { blockdev --setra "$1" "$2" 2>/dev/null || log "readahead skip: $2"; }
|
|
|
|
case "$mode" in
|
|
night)
|
|
setprop ukrrs-batch.slice \
|
|
CPUWeight="$BATCH_WEIGHT_NIGHT" \
|
|
AllowedCPUs="$BATCH_CPUS_NIGHT" \
|
|
MemoryHigh="$BATCH_HIGH_NIGHT"
|
|
setprop ukrrs-gateway.slice CPUWeight="$GW_WEIGHT_NIGHT"
|
|
setra "$DATA2_RA_NIGHT" "$DATA2_DEV"; setra "$DATA2_RA_NIGHT" "${DATA2_DEV}1"
|
|
sysctl -q -w vm.dirty_bytes="$DIRTY_NIGHT" vm.dirty_background_bytes="$DIRTY_BG_NIGHT"
|
|
;;
|
|
day)
|
|
setprop ukrrs-batch.slice \
|
|
CPUWeight="$BATCH_WEIGHT_DAY" \
|
|
AllowedCPUs="$BATCH_CPUS_DAY" \
|
|
MemoryHigh="$BATCH_HIGH_DAY"
|
|
setprop ukrrs-gateway.slice CPUWeight="$GW_WEIGHT_DAY"
|
|
setra "$DATA2_RA_DAY" "$DATA2_DEV"; setra "$DATA2_RA_DAY" "${DATA2_DEV}1"
|
|
sysctl -q -w vm.dirty_bytes="$DIRTY_DAY" vm.dirty_background_bytes="$DIRTY_BG_DAY"
|
|
;;
|
|
*)
|
|
echo "unknown mode: $mode" >&2; exit 2 ;;
|
|
esac
|
|
log "profile $mode applied $(date -Is)"
|