DOCS / LIST SIZING

List sizing & router hardware.

Last updated:

Address lists live in your router's RAM, and importing one costs CPU. A list that is unremarkable on a CCR can destabilise a 64 MB hEX. This page explains the size band and memory estimate shown on every list, where those numbers come from, and what to do when a list is too big for your hardware.

1. The short version

2. Why this matters

This is not hypothetical caution. The predecessor of this project distributed a list large enough that 64 MB routers subscribed to it ran out of memory, kernel-panicked and rebooted — repeatedly, dozens of times — until the operator force-downgraded those devices to a smaller list from the server side. Separately, an RB2011 importing roughly 30,000 entries was reported as CPU-bound rather than memory-bound: it had plenty of RAM left, but the import itself was the bottleneck.

Both failure modes are real, and they are different. That is why the band is computed from both the estimated memory and the entry count, and why the worse of the two wins.

3. The bands

BandEntriesEst. memoryGuidance
Tinyunder 1,000under 1 MBFits any RouterOS device, including 64 MB models. No hardware caveats.
Small1,000–10,0001–4 MBComfortable on 128 MB+ devices, and fine on a 64 MB device alongside one or two other small lists.
Medium10,000–50,0004–12 MB128 MB+ recommended. The import itself is CPU-noticeable on low-end hardware (RB2011-class and below) — schedule it off-peak.
Largeover 50,000over 12 MB256 MB+ / CCR-class recommended. Not recommended on 64 MB devices — lists this size have panic-rebooted low-memory routers. Consider a narrower list, or combine only what you need with the bundle builder.

A list is placed in the worse of its two bands. A list can be cheap in RAM and still be a slog to import on a low-end CPU, so entry count is scored on its own axis rather than folded into the memory number.

4. How the estimate is derived

4.1. Download size — measured

The rendered size of a list is measured, not guessed. Each entry becomes one add list=… address=… line, so the cost per entry is stable and depends only on the shape of the entries. Measured on 2026-08-12 against real catalogue data, rendered through the same code path that serves.rsc to your router:

ListEntries measuredBytes per entry
bogon-v415 / 1585.5
bogon-v611 / 1181.1
malware-ioc708 / 70882.2
tor-exit1,338 / 1,33884.2
community-blocklist1,777 / 1,77777.8
country-nz500 / 1,90349.2
country-cn500 / 10,86548.7
country-de1,500 / 13,93648.6
country-au1,500 / 11,67449.9
country-us2,500 / 80,74148.8

Two clean populations fall out. Lists whose entries carry a per-entry comment (threat feeds, bogons) cost roughly 78–86 bytes each; country allocation lists, which are bare CIDRs with no comment, cost roughly 49 bytes each. A list we have not measured is estimated at 50 bytes per entry if it is a country list and 86 bytes otherwise — the top of each measured range, so an unmeasured list is never under-stated.

The v6 and v7 renders are byte-identical for every list measured — only the command menu path differs, and that lives in the header, not the per-entry lines. One estimate therefore covers both.

4.2. On-router memory — extrapolated, and labelled as such

We cannot measure your router from here. The memory figure is the rendered size scaled by a factor of 5.4×, anchored to the only real-world measurement available: a roughly 190,000-entry address list that was reported as taking about 54 MB to load and about 50 MB resident on RouterOS.

Converting that to a per-byte ratio needs an assumption about how that list rendered, so we deliberately took the assumption that produces the largest multiplier. The practical effect: for comment-bearing lists our figure over-states memory rather than under-stating it. When the failure mode is somebody's router rebooting in a loop, that is the correct direction to be wrong in.

Treat the memory number as an order-of-magnitude guide for deciding whether a list belongs on a given device — not as a budget to fill to the last megabyte.

5. If a list is too big for your router

6. WinBox and large address lists

Worth knowing before you blame a list for a busy router: leaving IP → Firewall → Address Lists open in WinBox while a large dynamic list is loaded causes WinBox to re-fetch the table continuously. On a large list that is measurable bandwidth and CPU — the predecessor project measured it at around 5 Mbps — for as long as the tab stays open.

This is RouterOS/WinBox behaviour, not a fault in the list, and there is no setting that fixes it. It was raised upstream and described as expected behaviour. The remedy is simply to close the tab when you are finished looking at it. If you need to inspect entries, the list detail page has a searchable table that costs your router nothing.

7. What is not covered here