安装4GB RAM会增加处理器使用率


9

我有一个Intel Atom D2700(Synology NAS DS412 +),带有4GB RAM,运行内核3.2.30 x86_64。本设备具有单个DIMM插槽。

我和其他人发现的一件事是,添加4GB DIMM和2GB DIMM时,该单元在负载下的CPU使用率显着提高(例如,“繁重”的Java应用程序,例如Minecraft服务器或Plex转码等) 。许多用户发现,当它们降回到2GB时,所有这些高负载问题都会消失。

这是Linux特有的原因吗?还是Atom本身存在问题?


也许您可以添加正在使用的发行版?
伯恩哈德

Synology的构建。
Trevor Seward 2013年

内核有变化吗?您是否正在使用PAE内核?
2013年

Synology通常不提供这些类型的发行说明。不,这是x86-64内核。
Trevor Seward

top显示什么作为额外负载的来源?更多的I / O,更多的正在运行的进程?是否启用交换?如果您的进程运行时间较长且负载较高,则可以比较cat /proc/$PID/status一段时间内的输出。
Hauke Laging 2013年

Answers:



1

tl; dr

我认为罪魁祸首是不兼容的RAM模块。


我已经阅读了D2000数据表(如quadruplebucky 所建议)。数据表没有说任何关于限制DIMM插槽数量的RAM大小的内容。它代之以等级(参考内存几何)。

任何要在D2000系统中升级RAM的人都应查看表3-24了解支持的内存配置。对于4096 MB的内存大小,模块应为:

  • 双重排名
  • 具有16个2吉比特密度的芯片。

相同容量的内存模块以不同的配置制造,因此,一个人可以使用8个四千兆位密度的芯片获得例如4 GB的单列模块,该配置未在表中列出–请参阅Kingston的这篇启发性文章

也就是说,您必须检查模块确切零件号的规格,以确保它是否兼容。我最近在DS713 +中安装了爱国者PSD34G1333L2S,到目前为止运行良好。


0

如果有更多的内存,CPU将有更多的数据/程序可供处理(它将闲置等待磁盘中的数据的时间减少),因此CPU使用率应增加,特别是在高负载下。吞吐量增加了吗?还是您没有测量?


不能说我已经对它进行了真正的测量(Busybox,因此选件有些受限制),但是当使用4GB RAM时,上述应用程序的性能会大大下降,有些甚至无法使用。使用2GB RAM,这些问题都不明显。
Trevor Seward 2013年

德语维基百科文章声称I / O进程是负载的一部分。因此,负载应随着更多的RAM而下降。可以很容易地检查到for((i=0;i<20;i++)); do dd if=/dev/sda of=/dev/null skip=$((i*100)) bs=1M count=100 & done。运行此命令并查看顶部。我不知道由于交换而产生的I / O如何影响负载和I / O等待百分比。通过这种解释,性能下降根本没有任何意义。
Hauke Laging

0

计算机总是有瓶颈,否则所有问题都将在零时间内解决。卸下内存瓶颈后,系统不再需要在磁盘上等待,因此CPU得到了更好的利用。

这触动了我的一个宠物憎恨:受欢迎的,寻求轰动的博客和评论网站不知道如何进行基准测试。100%使用的CPU并不是浪费的CPU。完美的计算机将能够100%地利用所有资源来处理所有工作负载,但是我们离这种技术还很遥远。但是我离题了。

当然,除非您的操作系统中的内存管理有问题,否则可能性很小。


3
我认为对这里发生的事情有很大的误解。4GB与2GB RAM相比,应用程序的性能显着下降。不是处理器被“ 100%”使用,而是应用程序几乎无法运行。
Trevor Seward 2013年

可能是页面调度和上下文切换开销导致了这一点?您应该尝试运行一个2GB和4GB的大型应用程序,以查看该应用程序的吞吐量是否增加。如果这样做,则可能是由于上下文切换。
2013年

3
是否由于额外的可用物理内存而进行上下文切换?
Trevor Seward

我的假设是,额外的内存意味着处理器现在可以同时在更多的进程/线程上工作(因为它不必等待磁盘I / O或交换空间),因此更多的进程/线程将意味着更多的上下文切换。我当然是错的。
2013年

@TrevorSeward,问题说的完全不同。
vonbrand

0

您的新RAM是否有DDR3-800,而旧RAM是DDR3-1066(或者新RAM具有更高的延迟?

如果您的工作负载有很多缓存未命中并频繁访问RAM,则较慢的RAM可能会产生重大影响-此基准测试表明,-1066和-800 RAM之间的内存带宽差异约为30%:

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

您的工作量将必须占用大量内存,才能看到很大的不同。


备用DIMM是KVR1333D3S9 / 4G,但是Atom仅能以800Mhz的速度运行。
Trevor Seward

英特尔表示,D2700内存控制器将与DDR3-800或-1066 RAM(对应的最大内存带宽分别为6.4GB /秒和8.5GB /秒)一起使用。但是由于您的RAM是1333,因此应该将其降频到1066,这样我的建议就没有意义了。
约翰尼

0

我从来没有经历过这样的猜测:也许这是一个问题,因为Atom不能实际寻址超过4G(IIRC),并且与PCI地址空间有些冲突。

看一下各自的内核参数(mem *)。他们可能不会给我们很好的解释问题的方法,但可以解决该问题(但要花一些RAM)。因此,您可能会阻止内核使用较高的x MiB。您可以测试问题消失的边界。可能但不确定将PCI设备映射到4G的正下方。检查是否有意义,但我不知道该怎么做(也许通过某些ACPI工具或cat /sys/devices/pci0000\:00/0000\:00*/resource)。


如何在不访问引导参数的情况下设置max mem?
Trevor Seward

0

您是否看到过此Synology论坛主题:

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

有人说,更改/etc/rc.d中的参数会有所帮助(根据已安装的RAM数量在此设置vm.min_free_kybtes)。但这似乎对于1GB-> 2GB升级来说更多,而不是2GB-> 4GB。

其他人则声称4GB根本无法工作,而一个人则声称KVR1066D3S7 / 4G模块(即1066Mhz)可以正常工作,而其他拥有1333Mhz模块的人则遇到了问题。

似乎没有太多证据表明可以找到一种解决方案,但是您并不是唯一看到DS412 +中4GB RAM性能下降的人。


1
那就是我,最后修改min_free_kbytes并没有帮助。
Trevor Seward 2013年

然后我和说1066Mhz模块可以工作的人一起去,但是使用1333Mhz模块的人抱怨问题-也许Synology的BIOS确实不能很好地处理1333。
约翰尼

这将是英特尔的UEFI实现。
Trevor Seward

0

我(受过教育的)猜测是,处理器的缓存不能处理超过2 GB的内存,因此安装更多内存会导致缓存被禁用,从而导致性能严重下降。它也是一个四核cpu,因此单线程应用程序最多只能使用总cpu的25%,这就是为什么在添加ram之后它不会上升的原因。


好主意。有什么方法可以判断发行版中是否已禁用缓存?
Trevor Seward 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.