atproto pds in zig pds.zat.dev
pds atproto
Something went wrong. Try again.
Shell
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#!/usr/bin/env bashset -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.25donesqlite3 "$db" "SELECT 1 FROM accounts LIMIT 1" >/dev/nullkill "$bootstrap_pid"wait "$bootstrap_pid" || true
sqlite3 "$db" <<SQLBEGIN;WITH RECURSIVE accounts_to_seed(n) AS ( SELECT 1 UNION ALL SELECT n + 1 FROM accounts_to_seed WHERE n < ${account_count})INSERT INTO accounts ( did, handle, email, password_hash, activated_at, email_confirmed_at)SELECT printf('did:plc:zdsbench%016d', n), printf('bench%03d.test', n), printf('bench%03d@example.test', n), 'password', unixepoch(), unixepoch()FROM accounts_to_seedWHERE trueON CONFLICT(did) DO NOTHING;COMMIT;SQL
printf 'timestamp,memory_bytes,cpu_usage_usec,db_bytes,blob_bytes\n' >/tmp/zds-bench-resources.csvserver_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