Back to Blog
team@tinypod.app

How to Choose the Right Server Size for Your Application

CPU cores, RAM, storage — what does your app actually need? A practical guide to right-sizing your self-hosted infrastructure.

infrastructureserversperformance

The Goldilocks Problem


Pick a server that's too small and your apps crawl. Pick one that's too big and you're wasting money. Here's how to get it just right.


Understanding Server Resources


CPU Cores

CPU handles computation — processing requests, running queries, rendering pages. Most web applications are not CPU-intensive. A blog, wiki, or project management tool runs fine on 0.25-0.5 cores.


CPU-intensive workloads:

  • Video transcoding: 2-4 cores
  • AI/ML inference: 2-8 cores
  • Build servers (CI/CD): 2-4 cores
  • Database-heavy applications: 1-2 cores

  • RAM (Memory)

    RAM is where your application keeps data it's actively working with. This is usually the most important resource for self-hosted apps.


    Typical RAM usage:

  • Lightweight apps (Uptime Kuma, Vaultwarden): 128-256 MB
  • Medium apps (Gitea, Outline, Nextcloud): 256-512 MB
  • Heavy apps (GitLab, Discourse, Mattermost): 1-2 GB
  • Databases (PostgreSQL, MySQL): 256 MB - 2 GB depending on dataset

  • Storage

    Storage is for persistent data — files, database records, logs. SSDs (NVMe) are dramatically faster than spinning disks.


    Storage needs:

  • Application code and config: 1-5 GB
  • Databases (small-medium): 1-10 GB
  • File storage (Nextcloud, Minio): Depends on usage
  • Media (photos, videos): Can grow quickly

  • Sizing Strategy


    Start Small, Scale Up

    Always start with the minimum recommended resources. Monitor actual usage for a week, then adjust. It's much easier (and cheaper) to scale up than to guess right the first time.


    The 70% Rule

    If any resource consistently hits 70% utilization, it's time to consider scaling. At 70%, you have headroom for traffic spikes without degraded performance.


    Memory Is King

    When in doubt, add more RAM before adding CPU. Most self-hosted applications are memory-bound, not CPU-bound. A database query that fits in memory is 100x faster than one that hits disk.


    Common Configurations


    Personal Use (1-3 apps)

  • CPU: 1 core
  • RAM: 2 GB
  • Storage: 20 GB

  • Small Team (5-10 apps)

  • CPU: 2 cores
  • RAM: 4 GB
  • Storage: 40 GB

  • Growing Business (10+ apps)

  • CPU: 4 cores
  • RAM: 8 GB
  • Storage: 75 GB

  • TinyPod's Approach


    Each TinyPod server gives you 4 cores, 8 GB RAM, and 75 GB NVMe storage for $5/month. Need more? Add another server. Resources are soft-limited per app, so you can allocate exactly what each application needs.