Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

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?

share|improve this question
    
Maybe you can add what distribution you are using? –  Bernhard Mar 17 '13 at 18:47
    
Synology's build. –  Trevor Seward Mar 17 '13 at 19:46
    
Were there any changes to the kernel? Are you using a PAE Kernel by any chance? –  ffledgling Mar 24 '13 at 18:22
    
Synology generally doesn't provide those types of release notes. No, this is an x86-64 kernel. –  Trevor Seward Mar 24 '13 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. –  Hauke Laging Mar 27 '13 at 3:03
show 4 more comments

7 Answers

Have a look at the Intel datasheet for the the D2000 Series Atom Processors Intel datasheet for the the D2000 Series Atom Processors

Note pages 32-33 and table 3-24.

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

share|improve this answer
add comment

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?

share|improve this answer
    
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. –  Trevor Seward Mar 17 '13 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. –  Hauke Laging Mar 27 '13 at 2:37
add comment

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.

share|improve this answer
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. –  Trevor Seward Mar 23 '13 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 '13 at 17:50
3  
Context-switching due to additional available physical memory? –  Trevor Seward Mar 24 '13 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 '13 at 19:26
    
@TrevorSeward, the question says something completely different. –  vonbrand Feb 12 at 1:45
show 1 more comment

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:

http://www.tomshardware.com/reviews/core-i7-870-1156,2482-5.html

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

share|improve this answer
    
The replacement DIMM is KVR1333D3S9/4G, however the Atom will only ever operate at 800Mhz. –  Trevor Seward Mar 27 '13 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 '13 at 4:11
add comment

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).

share|improve this answer
    
How can one set max mem without access to the boot parameters? –  Trevor Seward Nov 14 '13 at 17:59
add comment

Have you seen this Synology forum thread:

http://forum.synology.com/enu/viewtopic.php?f=140&t=55105&sid=32ffe791c14c1a817869f78ec3d4300a&start=15

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+.

share|improve this answer
1  
That is me, and no in the end it modifying min_free_kbytes did not help. –  Trevor Seward Mar 27 '13 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 '13 at 19:47
    
This would be Intel's UEFI implementation. –  Trevor Seward Mar 28 '13 at 1:06
add comment

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.

share|improve this answer
    
That's a good thought. Any way to tell if the cache has been disabled from within the distro? –  Trevor Seward Jan 11 at 21:16
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.