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
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.jsclient connected to one guild. - Python 3.11+: ~40β60 MB for
discord.pyorinteractions.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)
- Music bot? β Start at 1 GB. Never below.
- Big bot (500+ guilds) with caching done right? β 1 GB.
- Big bot with cache config you don't trust? β 2 GB and fix the cache later.
- Anything calling embedded ML models locally? β 4 GB+.
- 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.pyis the single biggest RAM lever. - Start small, monitor, upgrade live. Don't pre-buy headroom you'll never touch.
