#!/usr/bin/env bash set -euo pipefail db="${ZDS_DB:-/data/zds.sqlite3}" account_count="${ZDS_BENCH_ACCOUNTS:-100}" zds & bootstrap_pid=$! for _ in $(seq 1 120); do if sqlite3 "$db" "SELECT 1 FROM accounts LIMIT 1" >/dev/null 2>&1; then break fi sleep 0.25 done sqlite3 "$db" "SELECT 1 FROM accounts LIMIT 1" >/dev/null kill "$bootstrap_pid" wait "$bootstrap_pid" || true sqlite3 "$db" </tmp/zds-bench-resources.csv server_pid="$$" ( while true; do timestamp="$(date +%s)" memory_kib="$(awk '/^VmRSS:/ { print $2; exit }' "/proc/$server_pid/status" 2>/dev/null || printf 0)" memory_bytes="$((memory_kib * 1024))" cpu_usage_usec="$(awk '/usage_usec/ { print $2; exit }' /sys/fs/cgroup/cpu.stat 2>/dev/null || printf 0)" db_bytes="$(stat -c %s "$db" 2>/dev/null || printf 0)" blob_bytes="$(du -sb "${ZDS_BLOBSTORE_PATH:-/data/blobs}" 2>/dev/null | awk '{ print $1 }' || printf 0)" printf '%s,%s,%s,%s,%s\n' "$timestamp" "$memory_bytes" "$cpu_usage_usec" "$db_bytes" "$blob_bytes" sleep 1 done ) >>/tmp/zds-bench-resources.csv & exec zds