All posts
by Renzom Team6 min read

How much RAM does a Discord bot need? 2026 sizing guide

Honest RAM sizing for Discord bots in 2026: small utility bots, music bots, multi-server bots, ML bots. Real numbers, common mistakes, and how to tell when you've outgrown your tier.

  • #discord-bot
  • #discord
  • #hosting
  • #sizing
  • #nodejs
  • #python
  • #bot
Also available in Deutsch

If you've ever shopped for Discord bot hosting, you've seen plans from €1.50/month (128 MB RAM) up to €25+/month (8 GB). The marketing makes it look like more RAM is always better. It isn't. Most bots only need a fraction of what hosts advertise β€” and a few specific bot types need way more than what their hoster recommends.

This is what we'd tell a friend who asked "how much RAM do I actually need for my bot in 2026", written by people who run thousands of bot containers.

The short answer

If you don't want to read the rest:

Your bot does this Realistic RAM
Slash-command utility / moderation, ≀ 5 servers 256–512 MB
Same, but with SQLite or LowDB 512 MB – 1 GB
Music bot (FFmpeg, voice connections) 1 – 2 GB
Multi-purpose bot in 50+ servers 1 – 2 GB
Big multi-server bot (200+ guilds) with persistent DB 2 – 4 GB
Sharded bot covering 2,500+ guilds 2 GB per shard
Bot with embedded ML (image gen, transcription, LLM cache) 4 – 16 GB

The honest median for the bots we host? 512 MB. Most people buy more than they need and never use the headroom.

How RAM is actually consumed in a Discord bot

To pick the right tier, it helps to know what eats memory in the first place.

1. The runtime itself

The Node.js or Python process baseline β€” before your bot does anything:

  • Node.js 20+: ~50–80 MB at idle for a discord.js client connected to one guild.
  • Python 3.11+: ~40–60 MB for discord.py or interactions.py.
  • Java 17+ / JDA: ~150–250 MB. Java's JVM overhead is a real cost on small bots β€” if you're choosing the language and RAM is tight, this matters.
  • Go: ~15–30 MB. Lightweight, but the ecosystem is smaller.

2. The guild cache

discord.js and discord.py cache the guilds, channels, roles, and members your bot can see. By default, this is everything β€” which is fine for 5 servers and a disaster for 5,000.

A rough rule for discord.js:

  • ~50–100 KB per guild (channels, roles, basic state)
  • ~1 KB per cached member

A 500-server bot with 100 members average per guild = 500 Γ— (75 KB + 100 KB) = ~85 MB just in cache. That's before your code does anything.

The biggest single win for bot RAM: configure the cache properly. In discord.js:

const client = new Client({
  intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages],
  makeCache: Options.cacheWithLimits({
    MessageManager: 50,              // keep last 50 messages per channel, not unlimited
    PresenceManager: 0,              // we don't need presence
    GuildMemberManager: 200,         // cap members per guild
  }),
});

In discord.py, set member_cache_flags=discord.MemberCacheFlags.none() if you don't need members cached.

3. Persistent state (your DB / data files)

  • SQLite file held in memory by your bot: typically 10–50 MB
  • In-memory queue / cooldown maps: typically a few MB unless you've got a memory leak
  • LowDB / JSON files: 5–20 MB

This is usually small. If yours isn't, you have a leak β€” and adding RAM just postpones the crash.

4. Voice and FFmpeg

A single music-bot voice connection with FFmpeg streaming = 150–300 MB extra. Three concurrent voice connections = ~600 MB easy. Music bots are the #1 reason people outgrow 512 MB.

If your bot plays music, start at 1 GB minimum. Period.

5. Embedded ML or external API caches

Anything that holds a model in memory:

  • Whisper (transcription): 1–4 GB depending on model size
  • A locally cached small LLM (Llama 2 7B quantized): 4–8 GB
  • Stable Diffusion: 6–12 GB

Most bots that touch ML actually call external APIs (OpenAI, Replicate, Hugging Face) and keep almost nothing locally β€” those bots don't need extra RAM beyond a 512 MB baseline. If your bot calls an API, the RAM lives at the API provider, not in your container.

Common sizing mistakes

Mistake 1: "I'm in 100+ servers, I need 4 GB"

Number of guilds is a weak predictor. A bot in 100 servers that only responds to !help uses ~150 MB. A bot in 5 servers that streams music in 3 of them uses ~800 MB.

Match RAM to what the bot does on hot paths, not where it's installed.

Mistake 2: "I'll get 2 GB now to be safe"

If your bot only needs 256 MB and you buy 2 GB, you're paying €4–6/month for €0.50 worth of resources. Multiply that across a few months while you're "still figuring it out" and you've spent enough to fund a year on the right tier.

You can upgrade live in any reasonable hoster's panel. Start small.

Mistake 3: "It crashed once with OOM, I need to double the RAM"

OOM (Out-Of-Memory) on a small bot is almost always a memory leak in your code or an unbounded cache. Doubling RAM hides the symptom for a week, then the leak catches up again.

How to actually diagnose:

  • Add process.memoryUsage() logging once per minute in Node.js
  • Or psutil.Process().memory_info() once per minute in Python
  • Look at the rate of increase. Steady = leak. Flat-then-spike-on-event = legitimate workload spike (maybe just upgrade).

Mistake 4: "Sharded bots need huge RAM"

Discord forces sharding at 2,500 guilds per shard. If you're sharded, each shard process runs separately. Each shard handles ~2,500 guilds and typically needs 1–2 GB β€” but you don't add them up into one container, they run as multiple processes.

If your hoster only lets you buy one big container and stuffs all shards into it, the math works out the same. If they let you run shards as separate processes / servers, you can mix-and-match.

How to actually pick a tier (decision tree)

  1. Music bot? β†’ Start at 1 GB. Never below.
  2. Big bot (500+ guilds) with caching done right? β†’ 1 GB.
  3. Big bot with cache config you don't trust? β†’ 2 GB and fix the cache later.
  4. Anything calling embedded ML models locally? β†’ 4 GB+.
  5. Everything else? β†’ 512 MB. Upgrade if you actually hit ceilings.

If you don't know which bucket you're in, start at 512 MB. Most plans let you upgrade live without losing files. The first month is your monitoring period β€” actual memory usage on Day 30 tells you more than any guess.

Renzom-specific recommendations

We host bots on dedicated RAM in a Pterodactyl panel β€” you get exactly what you pay for, no overselling, with built-in process.memoryUsage()-equivalent metrics in the console.

Bot profile Recommended Renzom tier
Hobby utility bot 512 MB (from €3/month)
Music bot (1–3 servers) 1 GB (from €5/month)
Multi-server bot 1–2 GB (€5–9/month)
Production bot, hundreds of guilds 2–4 GB (€9–15/month)
Heavy ML in-process 4 GB+ (€15+/month)

If you outgrow your tier mid-month, you upgrade live in the panel β€” no migration, no downtime. If you over-provisioned, you downgrade the same way at next billing cycle.

Configuration tips for your egg are in our Discord Bot Hosting overview, and we run a per-bot Pterodactyl container so OOM events show up in the console immediately instead of silently corrupting state.

TL;DR

  • Most Discord bots need 512 MB, not 2 GB.
  • The big exception is music bots (FFmpeg eats memory) β€” start at 1 GB.
  • The other big exception is bots that run ML models in-process β€” start at 4 GB.
  • Number of guilds is a weak signal; what your bot does matters more.
  • Cache config in discord.js / discord.py is the single biggest RAM lever.
  • Start small, monitor, upgrade live. Don't pre-buy headroom you'll never touch.