Die Prozessorauslastung steigt mit 4 GB RAM

9

Ich habe einen Intel Atom D2700 (Synology NAS DS412 +) mit 4 GB RAM und Kernel 3.2.30 x86_64. Dieses Gerät verfügt über einen einzelnen DIMM-Steckplatz.

Eine Sache, die ich und andere festgestellt haben, ist, dass beim Hinzufügen eines 4-GB-DIMMs gegenüber einem 2-GB-DIMM die CPU-Auslastung unter Last erheblich höher ist (z. B. "schwere" Java-Anwendungen wie Minecraft-Server oder Plex-Transcodierung usw.). . Viele Benutzer haben festgestellt, dass alle diese Probleme mit hoher Last verschwinden, wenn sie auf 2 GB zurückgreifen.

Ist dies etwas Spezifisches für Linux, das dies verursachen kann? Oder ist das ein Problem mit dem Atom selbst?

Trevor Seward
quelle
Vielleicht können Sie hinzufügen, welche Distribution Sie verwenden?
Bernhard
Der Aufbau von Synology.
Trevor Seward
Gab es Änderungen am Kernel? Verwenden Sie zufällig einen PAE-Kernel?
Jungvogel
Synology bietet im Allgemeinen keine solchen Versionshinweise. Nein, dies ist ein x86-64-Kernel.
Trevor Seward
Was zeigt top als Quelle für die zusätzliche Last? Mehr E / A, mehr laufende Prozesse? Ist das Tauschen aktiviert? Wenn Sie lange laufende Prozesse mit hoher (er) Last haben, können Sie die Ausgaben von cat /proc/$PID/statusüber die Zeit vergleichen.
Hauke ​​Laging

Antworten:

7

Werfen Sie einen Blick auf das Datenblatt der Intel Atom® Prozessoren D2000 und N2000, vol. 1 .

Beachten Sie die Seiten 32-33 und Tabelle 3-24.

Das Ergebnis ist, dass Ihr Prozessor und Ihr Speichercontroller zwar 4 GB Gesamtspeicher unterstützen, diese jedoch nur in 2-GB-Blöcken und 2 GB pro Steckplatz unterstützen. Da Ihr 412+ nur einen Steckplatz hat, sind 2 GB Ihr maximaler RAM. Alles darüber ist wahrscheinlich unvorhersehbar.

Vierbeiner
quelle
1

tl; dr

Ich denke, dass der Schuldige ein inkompatibles RAM-Modul ist.


Ich habe durch lesen D2000 Datenblatt (wie vorgeschlagen von quadruplebucky). AFAIK Das Datenblatt sagt nichts über die Begrenzung der RAM-Größe in Bezug auf eine Anzahl von DIMM-Steckplätzen aus. Es spricht stattdessen von Rängen (siehe Speichergeometrie ).

Jeder, der RAM im D2000-System aktualisieren möchte, sollte Tabelle 3-24 für unterstützte Speicherkonfigurationen überprüfen . Für eine Speichergröße von 4096 MB sollte das Modul sein:

  • doppelter Rang,
  • mit 16 Chips von 2 Gigabit Dichte.

Speichermodule mit der gleichen Kapazität werden in verschiedenen Konfigurationen hergestellt, so dass man beispielsweise ein 4-GB-Single-Rank-Modul mit acht Chips mit vier Gigabit-Dichte erhalten kann. Diese Konfiguration ist in der Tabelle nicht aufgeführt - siehe diesen Leuchtbeitrag von Kingston .

Sie müssen jedoch die Spezifikationen für die genaue Teilenummer Ihres Moduls überprüfen, um sicherzustellen, dass es kompatibel ist. Ich habe kürzlich Patriot PSD34G1333L2S in DS713 + installiert und bisher funktioniert es gut.

Herr Tao
quelle
0

Wenn mehr Speicher vorhanden ist, verfügt die CPU über mehr Daten / Programme, an denen gearbeitet werden kann (sie wartet im Leerlauf weniger auf Daten von der Festplatte), sodass die CPU-Auslastung insbesondere unter hoher Last zunehmen sollte. Steigt der Durchsatz? Oder hast du das nicht gemessen?

vonbrand
quelle
Ich kann nicht sagen, dass ich es wirklich über den Tellerrand hinaus gemessen habe (Busybox, daher sind die Optionen etwas eingeschränkt), aber die Leistung der oben genannten Anwendungen sinkt erheblich, wenn 4 GB RAM verwendet werden, einige bis zu dem Punkt, an dem sie unbrauchbar sind. Bei 2 GB RAM ist keines dieser Probleme offensichtlich.
Trevor Seward
Der deutsche Wikipedia-Artikel behauptet, dass E / A-Prozesse Teil der Last sind. Daher sollte die Last mit mehr RAM abfallen. Dies kann leicht von überprüft werden for((i=0;i<20;i++)); do dd if=/dev/sda of=/dev/null skip=$((i*100)) bs=1M count=100 & done. Führen Sie dies aus und werfen Sie einen Blick nach oben. Ich weiß jedoch nicht, wie sich E / A aufgrund des Austauschs auf die Last und den Prozentsatz der E / A-Wartezeit auswirkt. Dass Leistungseinbußen bei dieser Erklärung überhaupt keinen Sinn ergeben.
Hauke ​​Laging
0

Ein Computer hat IMMER einen Engpass, sonst würden alle Probleme in null Zeit gelöst. Wenn Sie den Flaschenhals des Speichers entfernt haben, musste das System nicht mehr auf der Festplatte warten, sodass die CPU besser ausgelastet war.

Dies berührt einen meiner Lieblingshasse: Die beliebten, sensationssuchenden Blogs und Bewertungswebsites wissen nicht, wie man Benchmarks erstellt. Eine zu 100% ausgelastete CPU ist keine verschwendete CPU. Der perfekte Computer könnte alle Ressourcen zu 100% für alle Arbeitslasten nutzen, aber wir sind sehr weit von dieser Art von Technologie entfernt. Aber ich schweife ab.

Es sei denn natürlich, es gibt ein Problem mit der Speicherverwaltung in Ihrem Betriebssystem, aber das ist viel weniger wahrscheinlich.

Johan
quelle
3
Ich denke, es gibt ein großes Missverständnis darüber, was hier vor sich geht. Anwendungen verzeichnen mit 4 GB gegenüber 2 GB RAM einen erheblichen Leistungseinbruch. Es ist nicht so, dass der Prozessor zu 100% ausgelastet ist, sondern dass die Anwendungen nahezu funktionsunfähig werden.
Trevor Seward
Vielleicht verursachen Paging- und Kontextwechsel-Overheads dies? Sie sollten versuchen, eine einzelne schwere Anwendung mit 2 GB und 4 GB auszuführen, um festzustellen, ob der Durchsatz für diese Anwendung steigt. Wenn dies der Fall ist, liegt dies möglicherweise an der Kontextumschaltung.
Jungvogel
3
Kontextwechsel durch zusätzlichen verfügbaren physischen Speicher?
Trevor Seward
Meine Hypothese war, dass zusätzlicher Speicher bedeutete, dass der Prozessor jetzt mehr Prozesse / Threads gleichzeitig bearbeiten konnte (da er nicht auf Festplatten-E / A oder Swap-Speicher warten musste) und mehr Prozesse / Threads daher mehr Kontextwechsel bedeuten würden. Ich könnte natürlich sehr falsch liegen.
Jungvogel
@ TrevorSeward, die Frage sagt etwas ganz anderes.
vonbrand
0

Gibt es eine Chance, dass Ihr neuer RAM DDR3-800 und der alte DDR3-1066 ist (oder dass der neue RAM eine höhere Latenz hat?

Wenn Ihre Workload viele Cache-Fehler aufweist und häufig auf den Arbeitsspeicher trifft, kann ein langsamerer Arbeitsspeicher einen signifikanten Unterschied bewirken. Dieser Benchmark zeigt einen Unterschied in der Speicherbandbreite zwischen -1066 und -800 RAM um etwa 30%:

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

Ihre Arbeitsbelastung müsste ziemlich speicherintensiv sein, um einen großen Unterschied zu erkennen.

Johnny
quelle
Das Ersatz-DIMM ist KVR1333D3S9 / 4G, der Atom wird jedoch immer nur mit 800 MHz betrieben.
Trevor Seward
Laut Intel funktioniert der D2700-Speichercontroller mit DDR3-800- oder -1066-RAM (mit einer entsprechenden maximalen Speicherbandbreite von 6,4 GB / s und 8,5 GB / s). Aber da Ihr RAM 1333 ist, sollte er auf 1066 heruntergetaktet werden, so dass mein Vorschlag umstritten ist.
Johnny
0

Ich habe das noch nie erlebt, also nur raten: Vielleicht ist dies ein Problem, weil das Atom nicht mehr als 4G physisch (IIRC) adressieren kann und eine Kollision mit dem PCI-Adressraum vorliegt.

Schauen Sie sich die jeweiligen Kernel-Parameter an (mem *) . Sie werden uns wahrscheinlich keine gute Erklärung für das Problem geben, können es aber lösen (auf Kosten von etwas RAM). Sie können also verhindern, dass der Kernel das obere x MiB verwendet. Sie können testen, an welcher Grenze das Problem verschwindet. Es ist wahrscheinlich, aber nicht sicher, ob PCI-Geräte direkt unter 4G zugeordnet sind. Es ist sinnvoll, das zu überprüfen, aber ich weiß nicht, wie ich das machen soll (vielleicht über ein ACPI-Tool oder cat /sys/devices/pci0000\:00/0000\:00*/resource).

Hauke ​​Laging
quelle
Wie kann man max mem ohne Zugriff auf die Boot-Parameter einstellen?
Trevor Seward
0

Haben Sie diesen Synology-Forum-Thread gesehen:

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

Laut Person hilft das Ändern eines Parameters in /etc/rc.d (hier wird vm.min_free_kybtes basierend auf der Menge des installierten RAM festgelegt). Dies scheint jedoch mehr für ein Upgrade von 1 GB -> 2 GB zu sein, nicht für 2 GB -> 4 GB.

Andere behaupten, dass 4 GB überhaupt nicht funktionieren, während einer behauptet, dass ein KVR1066D3S7 / 4G-Modul (1066 MHz) gut funktioniert, während andere mit 1333 MHz-Modulen wie Ihrem Probleme sehen.

Es scheint nicht viele harte Beweise zu geben, die auf eine Lösung hinweisen, aber Sie sind nicht der einzige, der einen Leistungsabfall mit 4 GB RAM in diesem DS412 + feststellt.

Johnny
quelle
1
Das bin ich, und nein, am Ende hat es nicht geholfen, min_free_kbytes zu ändern.
Trevor Seward
Dann würde ich mit dem Typen gehen, der sagte, dass das 1066-MHz-Modul funktioniert, aber die Leute mit den 1333-MHz-Modulen beschweren sich über Probleme - vielleicht kann das BIOS von Synology 1333 wirklich nicht gut verarbeiten.
Johnny
Dies wäre Intels UEFI-Implementierung.
Trevor Seward
0

Meine (fundierte) Vermutung ist, dass der Cache Ihres Prozessors nicht mehr als 2 GB RAM verarbeiten kann. Wenn Sie also mehr als das installieren, wird der Cache deaktiviert, was zu einem erheblichen Leistungseinbruch führt. Es ist auch eine Quad-Core-CPU, sodass eine Single-Threaded-Anwendung immer nur höchstens 25% der gesamten CPU verwenden kann, weshalb sie nach dem Hinzufügen von RAM nicht hochgefahren wird.

psusi
quelle
Das ist ein guter Gedanke. Gibt es eine Möglichkeit festzustellen, ob der Cache in der Distribution deaktiviert wurde?
Trevor Seward