I have an Intel Atom D2700 (Synology NAS DS412+) with 4GB RAM running kernel 3.2.30 x86_64. This unit has a single DIMM slot.

One thing I, and other's have found, is that when adding a 4GB DIMM versus a 2GB DIMM, the unit experiences significantly higher CPU usage when under load (for example, 'heavy' Java applications like Minecraft servers, or Plex transcoding, etc). Many users have found that when they drop back to 2GB all of these high load issues disappear.

Is this something specific to Linux that may cause this? Or is this an issue with the Atom itself?

  • Maybe you can add what distribution you are using?
    – Bernhard
    Mar 17, 2013 at 18:47
  • Synology's build.
    – user34365
    Mar 17, 2013 at 19:46
  • Were there any changes to the kernel? Are you using a PAE Kernel by any chance?
    – ffledgling
    Mar 24, 2013 at 18:22
  • Synology generally doesn't provide those types of release notes. No, this is an x86-64 kernel.
    – user34365
    Mar 24, 2013 at 18:26
  • What does top show as source for the additional load? More I/O, more running processes? Is swapping enabled? If you have long running processes with high(er) load then you may compare the outputs of cat /proc/$PID/status over time. Mar 27, 2013 at 3:03

8 Answers 8


Have a look at the Intel Atom® processor D2000 and N2000 series Datasheet, vol. 1.

Note pages 32-33 and table 3-24.

The takeaway from that is while your processor and memory controller support 4 GB of total RAM, they only support it in 2 GB chunks, in 2 GB per slot. Since your 412+ only has one slot, 2 GB is your max RAM. Anything above that is likely to be unpredictable.



I think that the culprit is incompatible RAM module.

I have read through D2000 datasheet (as suggested by quadruplebucky). AFAIK the datasheet does not say anything about limiting RAM size with respect to a number of DIMM slots. It speaks about ranks instead (ref. Memory geometry).

Anyone wanting to upgrade RAM in D2000 system should check Table 3-24 for Supported Memory Configurations. For 4096 MB memory size the module should be:

  • double ranked,
  • with 16 chips of 2 gigabit density.

Memory modules of the same capacity are manufactured in different configurations, so that one can obtain e.g. 4 GB single-rank module using eight four-gigabit density chips, which configuration is not listed in the table – see this illuminating post by Kingston.

That said, you have to check specifications for the exact part number of your module to be sure whether it is compatible. I have recently installed Patriot PSD34G1333L2S in DS713+ and so far it is performing well.


If there is more memory, the CPU will have more data/programs at hand to work on (it will be idle waiting for data from disk less time), so CPU usage should increase, specially under high load. Does the throughput increase? Or haven't you measured that?

  • Can't say I've really measured it beyond top (Busybox, so options are somewhat limited), but performance drops significantly for the above mentioned applications when using 4GB RAM, some to the point that they're unusable. With 2GB RAM, none of these issues are apparent.
    – user34365
    Mar 17, 2013 at 18:40
  • The German Wikipedia article claims that I/O processes are part of the load. Thus the load should drop with more RAM. This can easily be checked by for((i=0;i<20;i++)); do dd if=/dev/sda of=/dev/null skip=$((i*100)) bs=1M count=100 & done. Run this and have a look at top. I don't know though how I/O due to swapping affects load and I/O wait percentage. That performance drops doesn't make any sense at all with this explanation. Mar 27, 2013 at 2:37

A computer ALWAYS have a bottleneck, otherwise all problems would be solved in zero time. When you removed the Memory bottle neck, the system stopped having to wait on disk and so the CPU became better utilized.

This touches on one of my pet hates: The popular, sensation seeking blogs and review web sites don't know how to benchmark. A 100% utilized CPU is not a wasted CPU. The perfect computer would be able to utilize all resources 100% for all work-loads, but we are very far away from that kind of technology. But I digress.

Unless of course there is a problem with Memory management in your operating system, but that is much less likely.

  • 3
    I think there is a big misunderstanding of what is going on here. Applications experience a significant performance hit with 4GB vs. 2GB RAM. It isn't that the processor is "100%" utilized, it is that the applications become nearly non-functional.
    – user34365
    Mar 23, 2013 at 20:11
  • Maybe paging and context-switching overheads are causing this? You should try and run a single heavy application with 2GB and 4GB to see if the throughput for that application increases. If it does then it might be because of the context-switching.
    – ffledgling
    Mar 24, 2013 at 17:50
  • 3
    Context-switching due to additional available physical memory?
    – user34365
    Mar 24, 2013 at 18:27
  • My hypothesis was, that additional memory meant the processor could now work on more processes/threads simultaneously (because it wouldn't have to wait on disk I/O or swap space) and more processes/threads would therefore mean more context switches. I could be very wrong ofcourse.
    – ffledgling
    Mar 24, 2013 at 19:26
  • @TrevorSeward, the question says something completely different.
    – vonbrand
    Feb 12, 2014 at 1:45

Is there any chance your new RAM is DDR3-800 and the old one is DDR3-1066 (or that the new RAM has higher latency?

If your workload has a lot of cache misses and hits RAM frequently, slower RAM could make a significant difference - this benchmark shows about a 30% difference in memory bandwidth between -1066 and -800 RAM:


Your workload would have to be pretty memory intensive to see much of a difference.

  • The replacement DIMM is KVR1333D3S9/4G, however the Atom will only ever operate at 800Mhz.
    – user34365
    Mar 27, 2013 at 3:38
  • Intel says that the D2700 memory controller will work with DDR3-800 or -1066 RAM (with corresponding max memory bandwidth of 6.4GB/sec and 8.5GB/sec). But since your RAM is 1333, it should be downclocked to 1066, so that makes my my suggestion moot.
    – Johnny
    Mar 27, 2013 at 4:11

I have never experienced that thus just guessing: Perhaps this is a problem due to the Atom not being able to address more than 4G physically (IIRC) and some collision with PCI address space.

Have a look at the respective kernel parameters (mem*). They probably won't give us a good explanation of the problem but may solve it (at the cost of some RAM). So you may prevent the kernel from using the upper x MiB. You may test at which border the problem disappears. It is probable but not sure that PCI devices are mapped directly beneath 4G. It makes sense to check that but I don't know how to do that (perhaps via some ACPI tool or cat /sys/devices/pci0000\:00/0000\:00*/resource).

  • How can one set max mem without access to the boot parameters?
    – user34365
    Nov 14, 2013 at 17:59

Have you seen this Synology forum thread:


On person says that changing a parameter in /etc/rc.d helps (it's where vm.min_free_kybtes is set based on the amount of installed RAM). But that appears to be more for a 1GB -> 2GB upgrade, not 2GB -> 4GB.

Others claim that 4GB won't work at all, while one guy claims that a KVR1066D3S7/4G module (which is 1066Mhz) works fine while others with 1333Mhz modules like yours are seeing problems.

There doesn't seem to be much hard evidence there to point to a solution, but you're not the only one to see a performance degradation with 4GB of RAM in that DS412+.

  • 1
    That is me, and no in the end it modifying min_free_kbytes did not help.
    – user34365
    Mar 27, 2013 at 19:37
  • Then I'd go with the guy that said the 1066Mhz module worked, but the people with the 1333Mhz modules are complaining about problems - maybe Synology's BIOS really doesn't handle 1333 well.
    – Johnny
    Mar 27, 2013 at 19:47
  • This would be Intel's UEFI implementation.
    – user34365
    Mar 28, 2013 at 1:06

My (educated) guess is that your processor's cache can not handle more then 2 GB of ram, so installing more than that causes the cache to be disabled, causing a significant performance hit. It's also a quad core cpu, so a single threaded application can only ever use at most 25% of the total cpu, which is why it doesn't go up after adding ram.

  • That's a good thought. Any way to tell if the cache has been disabled from within the distro?
    – user34365
    Jan 11, 2014 at 21:16

You must log in to answer this question.