Skip to content

Latest commit

 

History

History
54 lines (51 loc) · 2.21 KB

Resources-needed.md

File metadata and controls

54 lines (51 loc) · 2.21 KB

Resource usage examples

Here are examples of hardware setups of some Mastodon instances for your perusal.

Notes:

  • 4x10 threads means 40 threads in total spread across 4 different processes
  • RPM stands for requests per minute
  • Users weekly means users who visit the site or use the API at least once per week
  • An up-to-date number of users cannot be guaranteed in this document
  • Listed setups may be underutilizing or overutilizing their hardware
mastodon.social
Users total 150,000+
Users weekly 10,000+
Average RPM 11,000+
Approx. cost/mo 250€
Puma 4x10 threads
Sidekiq 4x50 threads
Streaming API 2x1 threads
Hosting Hetzner
Special notes 4x servers, each with 8-core i7 CPUs, 32GB DDR3 RAM and SSD disks, arranged in a high-availability setup. Sidekiq on a separate machine. PostgreSQL on two separate machines (hot standby). Redis on two separate machines (one volatile for Rails cache).
asonix.dog
Users total 16
Users weekly 2
Average RPM a few
Approx. cost/mo electricity
Puma 1x8 threads
Sidekiq 4x4 threads
Streaming API 1x1 threads
Hosting self
Special notes Raspberry Pi 2 model B running Arch Linux Arm hosting mastodon-web, Pine64 running Armbian hosting mastodon-sidekiq and mastodon-streaming, Raspberry Pi 2 model B running postgres. Raspberry Pi 1 B+ running Redis. All devices have 1GB RAM
mspsocial.net
Users total 79
Users weekly 10
Average RPM 20
Approx. cost/mo $25
Puma 2x5
Sidekiq 1x5
Streaming API 1x1
Hosting Digital Ocean
Special notes Upgraded droplet from 2GB RAM/1vCPU to 4GB/2 vCPU to run elasticsearch. Total disk usage approx 15GB, increasing approx. 1 GB every 30 days.
masto.donte.com.br
Users total 480+
Users weekly 100+
Average RPM 150+
Approx. cost/mo USD25 (server USD20 + automated backups USD5)
Puma 2x5 threads
Sidekiq 1x6 threads
Streaming API 1x1 threads
Hosting Linode
Special notes Running everything in one Linode 4096, used to run on a Linode 2048 before. Using ruby compiled with jmalloc, not using Docker. Database backup is at around 727MB compressed, production database around 6755MB (containing 5.4 million status, 39.5k accounts).