Post

learned so far: - 4 cores seems _enough to run_ but on this particular host it’s kind of marginal. 16GB ram seems plenty. - it’s been dropping pds websockets, and doesn’t seem to recover on its own. not sure why. - bandwidth is less than i was expecting. - +jetstream on this server is too much

fig (aka:[phil])@bad-example.com

kinda still a relay noob but uh i think it’s doing the thing non-us jurisdiction (montreal) non-us-company-cloud-provider relay. chillin.

- pds backfill is rough on this server, cpu pegs 100% - made worse by having jetstream on the same server trying to do a higher event rate - also interesting: jetstream just crashes when it’s relay websocket closes? fine if the supervisor auto-restarts it i guess.

- 4 shared cores on a 2017-era 2ghz epyc is not enough for a relay. could probably tune some things to get it there—seeing significant overhead from userspace networking + logging—but i def want more performance margin than this. for $5.5CAD i can get two more shared cores, or double that for 8

Relay operation learnings, storage edition - 48h content retention window: 582GB. Weekends are a little slower on atproto so say ~300GB/retention-day typical. This is less than I expected (i got 4TB) - sync state and everything else in postgres: 2.2GB. this thing is pretty efficient ✨

got victoriametrics scraping node_exporter on the relay host so i can let btop take a rest finally. and get some better bandwidth numbers. whew. (insert tailscale-is-cool take about how it's literally the same for me to do this on the montreal relay vs my at-home pi from the at-home vicmetrics)

back from a lil crash and machine reboot: looks like the bluesky PDS sync is going to need a similar level of patience as the initial sync. instead of babysitting each bsky pds server, i’ve requestCrawled all of them at once. it’s now only pulling ~150mbps but hopefully will continue to progress

it might be some hours until it’s fully live again. should work if you connect now, just with records pretty delayed. once it’s caught up with bsky servers, i’ll reconnect all the indie PDSs that didn’t connect on reboot.

wow k so that’s 4 hours to settle after connecting to 10 bsky pds servers (~1M users) although 2h was another CPU steal event (boo) there are 80 servers. i think something is not happening the way it’s supposed to when i connect.

My guess is you may be connecting with an old cursor or cursor=0 or something like that and end up replaying the whole event buffer or smth maybe?

verifying by replaying all of puffball to my house to compare the event counts. (it’s very cool that the sync xrpc is same for relay/pds) if this is what’s happening then technically i can say i’ve done a full network backfill already

0 reposts5 likes

*coral (puffball is bigg) very very sketchy way of counting but it seems like less than full backfill. i *think* it’s just backfill since the last time it was up. it’s been down for quite a bit now, guess i should just hard-reset it

PDS firehose backfill windows are roughly 24 hours and roughly 41-45M events per day so for ~80 prod PDS instances the you'd expect somewhere around 500k events in the full backfill window on average but the earlier PDSs end up with a lot more activity than more recent ones so 100k-1M range is right

ohhhhh huh I didn't realize pds backfill was also a limited window (this makes 1000% sense) i cleared out the db and persist files and now connecting to new PDSs is really snappy. i think it's mostly a matter of *any* full-network backfill just being a very big lift for this lil server.