What's new

How much RAM is enough in a router?

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

L&LD

Part of the Furniture
I've noticed from my own experience that the 68 model doesn't seem to utilize all of of it's 256MB RAM anyway but yes it's always nice to have more available RAM to buffer the data intensive activities.

Agree that the router os is very efficient with the ram, but I want the upgraded processor to have as much hardware supporting it as possible too.

In my own RT-AC68U I have disabled the 'regularly flush caches' option. The network has been significantly more responsive. Even as the ram use went up. ;)

Have you read the post from sfx2000? The processor is not the only component that can bottleneck the router, the ram plays a large part too.

http://www.snbforums.com/threads/li...mo-gigabit-router-reviewed.33150/#post-266244
 
Agree that the router os is very efficient with the ram, but I want the upgraded processor to have as much hardware supporting it as possible too.

In my own RT-AC68U I have disabled the 'regularly flush caches' option. The network has been significantly more responsive. Even as the ram use went up. ;)

Have you read the post from sfx2000? The processor is not the only component that can bottleneck the router, the ram plays a large part too.

http://www.snbforums.com/threads/li...mo-gigabit-router-reviewed.33150/#post-266244
More RAM is only an issue if the system is running out of memory of if there are a lot of applications running that need it. Otherwise it's a resource sitting there waiting to be used. A big reason for flushing or reseting the RAM cache is if there are memory leaks in the firmware. The system should release the cache when it is not being used but often it doesn't. Having more RAM would only extend the time that the memory leak could go on before running out of memory but wouldn't eliminate the need to flush the cache at some point since the problem isn't the lack of RAM but the memory leak itself.

Application load and efficiency also impacts RAM usage. As more applications are being used on modern routers it's still good to have more RAM for application and data buffering so it's definitely a positive.

However processor speed, use of multiple processors for offloading processing, dual core, quad core designs, etc... directly effects the speed and experience of using the router as a wired and wireless data routing and data processing device. It has a huge impact on the performance of the router and allows the user to utilize more router intensive applications without negatively impacting performance. If I had to choose between a faster processor or more RAM I would take the faster processor.
 
Ram isn't a resource waiting to be used. It is essential in how efficient and effective the cpu is and more ram makes the total system more powerful than a nominally faster cpu, but coupled with less ram.

Memory leaks are not a reason to have cache flushing enabled (but, they should be fixed, of course). Flushing the caches just gives the cpu more work to do (moving data from storage to ram) for no reason to the tasks at hand (routing packets).

The faster the processor, the more important it is to give it the additional ram it needs to 'breathe' properly. ;)

A faster cpu needs (and can use) more ram to get its job done. A race car with regular gasoline is not as fast compared to a better race 'team'.
 
Last edited:
"Ram isn't a resource waiting to be used. It is essential in how efficient and effective the cpu is and more ram makes the total system more powerful than a nominally faster cpu, but coupled with less ram."

-Yes it is. I guess we disagree completely on this one... and an efficient and effective CPU should need less RAM not more since it would not require as much memory to cache and process the data over a given period of time. A modern wireless router is basically a small network task based computer processing and routing data. The faster processor with lower processing wait states should translate into more effective use of available memory.

"Memory leaks are not a reason to have cache flushing enabled (but, they should be fixed, of course). Flushing the caches just gives the cpu more work to do (moving data from storage to ram) for no reason to the tasks at hand (routing packets)."

-I'm talking about flushing the active memory. Power cycling does essentially the same thing. Whether the cache flush feature is the same I don't know. I don't use it but we do power cycle the router when I see excessive RAM being used and it seems to help the router. It's similar to rebooting a computer every now and then and ... Yes memory leaks are a huge problem with software and a main contributor to excess RAM usage. I know they can be a major problem with all devices from smart phones, traditional desktop and laptop computers and wireless routers but I'm not a router firmware expert so I can't provide specifics on how often it happens.

"The faster the processor, the more important it is to give it the additional ram it needs to 'breathe' properly."

-I've never heard this before. The processor only needs as much memory to run the firmware, applications and any data it stores. Any excess is an unused resource. If anything more RAM simply future proofs the router and gives it more room to run applications and cache application data.

As I said before though... We can agree that having more RAM is a good thing. It just isn't something that necessarily automatically improves performance just by being there. If all things are equal between a slower processor and a faster one the faster processor should always help improve performance.
 
Last edited:
I guess we'll agree to disagree then. :)

I was taught computer basics at a different level, I guess. For what it's worth though, a cpu without ram cannot do anything. And needing less ram is not a function of the cpu, solely, it is the os and programs running. When I stated 'ram is required for an efficient and effective cpu', it implies that they are both responsible for creating something beneficial for a user. A cpu isn't effective by itself because code only runs in ram (and the code that can run inside the cpu registers and fast caches is not really usable to most users). Give a processor more ram and it will do more in return.

If you read that link to sfx2000's comments, having more ram isn't a luxury (even today), particularly for people with fast ISP speeds and many (and ever growing) devices on their 'home' networks.
 
I guess we'll agree to disagree then. :)

I was taught computer basics at a different level, I guess. For what it's worth though, a cpu without ram cannot do anything. And needing less ram is not a function of the cpu, solely, it is the os and programs running. When I stated 'ram is required for an efficient and effective cpu', it implies that they are both responsible for creating something beneficial for a user. A cpu isn't effective by itself because code only runs in ram (and the code that can run inside the cpu registers and fast caches is not really usable to most users). Give a processor more ram and it will do more in return.

If you read that link to sfx2000's comments, having more ram isn't a luxury (even today), particularly for people with fast ISP speeds and many (and ever growing) devices on their 'home' networks.

To me it's not as important whether we agree or disagree but it's whatever the truth is. I majored in computer science before changing majors. I did work in the computer industry for years. I have a much higher than an average understanding of how computers work. I am less familiar with routers but from everything I know about them they are simply specialized computers designed for networking tasks. By definition computer RAM has always been referred to in the industry by programmers and users as a "memory resource" and when you run out of available RAM there are other ways that a computer can compensate depending on it's design (i.e. virtual memory). RAM (random access memory) is not required for an efficient and effective CPU... It's simply the most traditional cost effective industry standard design.

http://www.crucial.com/usa/en/support-what-does-computer-memory-dram-do

A quote from link above -"Memory is your system's short term data memory (it stores the information your computer is actively using). The more programs your system is running, they more memory you'll likely need."
 
Last edited:
It's not as important whether we agree or disagree but what the truth is. I majored in computer science before changing majors. I did work in the computer industry for years. I have a much higher than an average understanding of how computers work. I am less familiar with routers but from everything I know about them they are simply specialized computers designed for networking tasks. By definition computer RAM has always been referred to in the industry by programmers and users as a "memory resource" and when you run out of available RAM there are other ways that a computer can compensate depending on it's design (i.e. virtual memory). RAM (random access memory) is not required for an efficient and effective CPU... It's simply the most traditional cost effective industry standard design.

http://www.crucial.com/usa/en/support-what-does-computer-memory-dram-do

A quote from link above -"Memory is your system's short term data memory (it stores the information your computer is actively using). The more programs your system is running, they more memory you'll likely need."

Sorry, but a manufacturer marketing is not a source of 'good' knowledge. :)

There is no other way for a computer to do what it can do with ram. Afaik, code can only be run in ram (and the even faster level 1, 2 and 3 caches and registers contained within a cpu), nothing else. Everything else is just 'dumb' storage. That line will be blurred with what Micron is coming up with, if we can believe the rumors. Maybe even by this year.

https://www.micron.com/about/emerging-technologies/3d-xpoint-technology
 
Sorry, but a manufacturer marketing is not a source of 'good' knowledge. :)

There is no other way for a computer to do what it can do with ram. Afaik, code can only be run in ram (and the even faster level 1, 2 and 3 caches and registers contained within a cpu), nothing else. Everything else is just 'dumb' storage. That line will be blurred with what Micron is coming up with, if we can believe the rumors. Maybe even by this year.

https://www.micron.com/about/emerging-technologies/3d-xpoint-technology

The Crucial link wasn't intended to be a prime source of knowledge about what RAM is. I assumed the link was self explanatory. I guess it wasn't. Of course we are discussing the amount of external RAM or in this case DRAM (256MB, 512MB, etc.) or memory not integrated into the main processor, co-processors, etc..

I simply posted the first link I read that offered what I think is a good basic explanation... and regarding the external RAM we are discussing here being a requirement... It absolutely is not a requirement. It's just an industry standard design... and... No... code is not required to specifically run in the RAM we are talking about here. Depending on the design of the computer program code can run though or utilize any type of active available memory which may or may not be system DRAM. This is a very important concept to understand for programming which sometimes involves specialized repetitive instruction code that streams directly into and runs at the processor level.
 
Last edited:
We discuss routers here, routers in more specific that have a CPU (single or multi core), some ROM, some flashrom and some RAM (or DRAM). Sufficient RAM is crucial and the amount of required RAM depends on the use of your (in this case) router, more RAM can be overkill but wont hurt if it does not increase the router cost.
There is no harddisk in the router, so all the CPU has is RAM to store what ever must be stored.
Maybe good or better programming may save some RAM, but these days programmers are no longer taught to save RAM.
 
AsusWRT is pretty decent at managing it's memory (as is OpenWRT, but that's perhaps another discussion).

RAM does make a difference - the amount of RAM, and the width/speed of it - on the high-end, 256MB is probably right at the limit at the moment - many vendors are making the shift over to 512MB, as we have ever more devices connected to the router/AP.

Width and Speed come into play, esp. with some applications that are memory dependent (OpenVPN is a great example) - the higher end, we're still seeing 32-bit paths to the BCM470** series - and this can be a bottle neck with higher speed links, as everything is RAM based (the bridge, iptables array, OpenVPN server and the TUN interface, etc...)

As we roll into 2H-2016, and the upcoming rollout of ARMv8 based devices (64bit!) and more cores even (we're seeing quad A7's announced recently), RAM will be even more important, and I do see the step into 1GB on the higher end, and perhaps moving from the 32-bit paths we see now over to 64bit paths.

And yeah, we'll probably start seeing Quad's come into play - more cores, more thread, better performance, and this will need wider/faster/more memory.

Faster WAN pipes are going to need this, as well as even more devices on the LAN/WLAN (and bigger pipes there as well.
 
I simply posted the first link I read that offered what I think is a good basic explanation... and regarding the external RAM we are discussing here being a requirement... It absolutely is not a requirement. It's just an industry standard design... and... No... code is not required to specifically run in the RAM we are talking about here. Depending on the design of the computer program code can run though or utilize any type of active available memory which may or may not be system DRAM. This is a very important concept to understand for programming which sometimes involves specialized repetitive instruction code that streams directly into and runs at the processor level.

We are talking about DIMM's, right? They are required. Many boards won't even post without DRAM being installed.

The rest of your quote above simply repeats what I have previously stated. Code runs in ram (or the cpu registers that are even faster). All storage devices (hdd, ssd, etc.) are simply there to get the needed code (or data) as fast as possible to the ram so the processor(s) can do their stuff.

wouterv, sure there is no hdd in the routers today. But there is storage (even if it's flash based). And that is not enough for the cpu to run (and/or probably boot up) at all.
 
We are talking about DIMM's, right? They are required. Many boards won't even post without DRAM being installed.

The rest of your quote above simply repeats what I have previously stated. Code runs in ram (or the cpu registers that are even faster). All storage devices (hdd, ssd, etc.) are simply there to get the needed code (or data) as fast as possible to the ram so the processor(s) can do their stuff.

wouterv, sure there is no hdd in the routers today. But there is storage (even if it's flash based). And that is not enough for the cpu to run (and/or probably boot up) at all.
sfx2000 is basically saying what I have been saying ... 256MB RAM is good enough. 512MB is a good thing to support more applications running and to future proof the routers as more applications will require more memory.

What I disagree with what you said is that simply increasing the amount of system RAM (in this case DRAM) means and automatic increase in router performance... an improvement that you seem to claim that is more important that increasing the speed of the processor. I simply disagree with that flawed logic which was the crux of what our back and forth discussion has been all about.

Your quote: "The rest of your quote above simply repeats what I have previously stated. Code runs in ram (or the cpu registers that are even faster). All storage devices (hdd, ssd, etc.) are simply there to get the needed code (or data) as fast as possible to the ram so the processor(s) can do their stuff."

-I thought we had been talking about the external system RAM or DRAM all along. I don't know of any consumer routers that have internal processors with on board 256MB or 512MB RAM. On board processor cache memory or virtual memory from a hard disk or other type of memory was what I referred to as being other memory. This is different than the active system DRAM that you seemed to say as being "required" for a computer to run... from our extended discussion relating to regular desktop computers... Of course these routers use active system RAM or DRAM not only as RAM but similar to the way a desktop computer would use a hard drive. External DRAM accessed by the processor is the industry standard design that is used I was referring to but it's not the only way a computer can run code.
 
Last edited:
sfx2000 is basically saying what I have been saying ... 256MB RAM is good enough. 512MB is a good thing to support more applications running and to future proof the routers as more applications will require more memory.

More memory is always better - when one looks at the not so uncommon use cases that people are doing...

1) 3TB external HD, with a few thousand files shared over Samba
2) MiniDLNA running, sharing media to devices
3) OpenVPN to some commercial VPN provider
4) Guest WLAN's running

These are all pretty typical... throw 25 clients now on it, and 256MB of RAM starts getting pretty tight - and this is why the higher end is moving towards 512MB, and for good reason.
 
These are all pretty typical... throw 25 clients now on it, and 256MB of RAM starts getting pretty tight - and this is why the higher end is moving towards 512MB, and for good reason.

This seems one theme you've been preaching lately..I'm not sure if you got it right...(yeah I heard you've designed wireless routers before).

Personally I quite enjoyed reading the discussion in this thread. You shall not have spoiled the party without saying who got more things right. LOL
 
This seems one theme you've been preaching lately..I'm not sure if you got it right...(yeah I heard you've designed wireless routers before).

Personally I quite enjoyed reading the discussion in this thread. You shall not have spoiled the party without saying who got more things right. LOL

Sharing some insight gained on another project that has brought this topic to the forefront... (can't say much more than that)
 
This seems one theme you've been preaching lately..I'm not sure if you got it right...(yeah I heard you've designed wireless routers before).

Personally I quite enjoyed reading the discussion in this thread. You shall not have spoiled the party without saying who got more things right. LOL

It's a good discussion, and probably should be forked off to another thread, as we've gone well past the intent of this one :D

Great comments across the board...
 
On board processor cache memory or virtual memory from a hard disk or other type of memory was what I referred to as being other memory. This is different than the active system DRAM that you seemed to say as being "required" for a computer to run... from our extended discussion relating to regular desktop computers... Of course these routers use active system RAM or DRAM not only as RAM but similar to the way a desktop computer would use a hard drive. External DRAM accessed by the processor is the industry standard design that is used I was referring to but it's not the only way a computer can run code.

There is no other way to run code. Ram is a 'must' for any x86 processor in the few decades they've been available.

Virtual memory on a hdd cannot be used by the cpu directly. It can use vm to page in and out of main ram, but that's it.

And even our routers today do not use ram/dram as a hard drive. They have the small flash memory (nand?) to do so.
 
There is no other way to run code. Ram is a 'must' for any x86 processor in the few decades they've been available.

Virtual memory on a hdd cannot be used by the cpu directly. It can use vm to page in and out of main ram, but that's it.

And even our routers today do not use ram/dram as a hard drive. They have the small flash memory (nand?) to do so.

NAND is used as a block based device, so we have to pop it into RAM to execute - NOR can execute in place as it can be directly accessed and mapped by the MMU, but NOR is very expensive compared to NAND, and RAM is cheap...

(this is also a reason why we have initramfs for Linux on x86, so the kernel can be loaded into RAM for bootup)
 
Many years ago I think I saw some vendors selling execute in place NAND for consumer markets. Must be stacking a tiny bit of NOR with a huge NAND in a single package.

Yep - it's a stacked combo package - don't see it so much in this space, but in handsets, it used to be fairly common...

The NOR/SRAM packages were very common many years back in the early days of 2G... spendy, but small and a bit lower power draw compared to a NAND/DRAM scenario...

What's really cool about NOR is that it's addressable as regular memory - so with JTAG/ICE, you can stop trace, peek/poke bits as needed without having read/erase/rewrite the block and continue - Fun stuff back in the day...
 
Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top