RAM vorübergehend deaktivieren, um eine Maschine mit niedrigeren Spezifikationen nachzuahmen?

Ich habe zwei Macbooks von 2009. Einer hat 4 GB RAM und läuft mit OS 10.10; einer hat 2 Gigs und läuft mit OS 10.5.

Ich erwäge, den letzteren Computer auf Yosemite (10.10) zu aktualisieren, aber ich mache mir Sorgen, dass er mit so wenig RAM langsam läuft. Um ein Gefühl dafür zu bekommen, wie die Leistung aussehen würde, frage ich mich, ob es eine Möglichkeit gibt, die Hälfte des Arbeitsspeichers in der Maschine mit höheren Spezifikationen "auszuschalten". Wenn ich das täte, könnte ich mir ein Bild davon machen, wie Yosemite auf dem 2-Gig-Rechner laufen würde, bevor ich das Upgrade tatsächlich durchführe.

Gibt es eine Möglichkeit, RAM vorübergehend zu deaktivieren, ohne den Chip physisch zu entfernen?

Warum ist das Entfernen des Chips nicht erforderlich? Könnten Sie nicht einfach den physischen Arbeitsspeicher der beiden MacBooks tauschen?
Ich habe nicht den richtigen Schraubendreher zur Hand.
2009 MacBook Pro akzeptiert DDR3 1333 MHz RAM (es wird auf 1066 MHz heruntergeregelt). Sie können für 30 $ kaufen. Diese Maschinen benötigen bis zu 8 GB. Fügen Sie eine SSD hinzu und dies ist immer noch eine sehr anständige Maschine.
@dB' Bitte akzeptieren Sie die Antwort von OSdweeb. statt meiner. Obwohl Sie neu starten müssen, ist dies eine elegante und standardmäßige Methode und liefert ein zuverlässigeres Ergebnis für 10.9/10.10 und wahrscheinlich später. Die RAM-Disk funktioniert gut für Mac OS X bis 10.8 ohne Neustart und Manipulation von Systemdateien.

Antworten (6)

Es ist nicht erforderlich, RAM herauszunehmen, eine RAM-Disk zu erstellen oder eine VM zu verwenden. Booten Sie einfach das Betriebssystem mit dem maxmem=Boot-Flag-Wert, der für diesen Zweck erstellt wurde und seit Jahrzehnten existiert.

Einfach Terminal als Sudoer öffnen und eingeben

sudo nano /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

Nach Eingabe Ihres Passwortes ändern

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>Kernel Flags</key>
        <string></string>
</dict>
</plist>

zu

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs$
<plist version="1.0">
<dict>
        <key>Kernel Flags</key>
        <string>maxmem=2048</string>
</dict>
</plist>

und mit die Änderungen auf die Festplatte schreiben ctrlound nano mit beendenctrlx

Starten Sie Ihren Mac neu, um die Änderungen zu übernehmen.

Um die Änderungen rückgängig zu machen, entfernen Sie „maxmem=2048“ erneut mit Nano.

Mein Gehirn ist eine alte Mülltonne ... Gestern habe ich versucht, diese einfache Lösung zu finden, ob Hölle oder Hochwasser - und ich wusste, dass es sie gibt - aber ich konnte mich einfach nicht daran erinnern.
Nur nebenbei: Du solltest die Registrierung besser abschließen, sonst kannst du dich nicht mehr in dein Konto einloggen, wenn du versehentlich deine Cookies verlierst.
Während diese Antwort, wie sie am 4. April 15 geschrieben wurde, möglicherweise unter OS X bis OS X 10.10 Yosemite funktioniert hat; Es funktioniert jedoch nicht mehr unter OS X 10.11 El Capitan und höher, es sei denn, man deaktiviert zuerst den Systemintegritätsschutz. Siehe So ändern Sie den Systemintegritätsschutz in El Capitan , und obwohl die Anweisungen für El Capitan gelten, gelten die gleichen grundlegenden Anweisungen für neuere Versionen von macOS.
Ich habe dies versucht und es funktioniert nicht - Activity Monitor sagt immer noch, dass es 8 GB in Apps und 6 GB in zwischengespeicherten Dateien von meinen 16 GB verwendet, wenn ich maxmem = 8192 setze ... Hilfe!

Erstellen Sie einfach eine RAM-Disk mit der Größe 2 GiB, um den verfügbaren RAM für das System und laufende Anwendungen zu reduzieren.

Um die erforderliche Anzahl von Blöcken zum Erstellen einer solchen Festplatte zu erhalten, multiplizieren Sie (RAMdiskSize in MB)*2048. In Ihrem Beispiel sind das 2048*2048=4194304.

Öffnen Sie dann das Terminal und geben Sie Folgendes ein:

diskutil erasevolume HFS+ 'RAM Disk' `hdiutil attach -nomount ram://4194304`

Sie erhalten eine ähnliche Meldung wie diese:

Started erase on disk9  
Unmounting disk  
Erasing  
Initialized /dev/rdisk9 as a 2 GB HFS Plus volume  
Mounting disk  
Finished erase on disk9 RAM Disk  

Verwenden Sie dann dd und den Pfad zum Volume und füllen Sie die Festplatte mit zufälligen Daten:

dd if=/dev/random of=/Volumes/RAM\ Disk/random.dat bs=1024k

Der Befehl schreibt 1-MiB-Blöcke zufälliger Daten in die Datei random.dat im RAM-Disk-Volume, bis sie voll ist.

Dies sollte Ihren verfügbaren RAM künstlich um ~ 2 GiB reduzieren, bis Sie die RAM-Disk aushängen oder Ihren Mac neu starten.

Nach einigen Tests scheint dies nicht so zuverlässig zu funktionieren wie in älteren Systemen. Grund ist die neue Speicherverwaltung in den neusten Systemen (ab 10.9).
Der von der RAM-Disk verwendete Speicher sollte nicht auf die Festplatte ausgelagert werden, kann aber je nach Qualität der Zufallsdatendatei etwas komprimiert werden. Sie können die Größe der RAM-Disk um 5-10 % auf ~2,1 GB erhöhen, um ein realistischeres Bild zu erhalten.


Wenn Sie dies in 10.5-10.8 tun möchten, scheint der folgende Befehl ausreichend zu sein, um ein zuverlässiges Ergebnis zu erhalten (um die Festplattenkennung zu erhalten, überprüfen Sie die Ausgabe des diskutil...Befehls):

dd if=/dev/zero of=/dev/rdisk9 bs=1m
Coole Lösung! Wenn ich das richtig verstehe, habe ich 2 GB RAM für eine Ramdisk requiriert. Diese 2 GB RAM werden zugewiesen, aber da ich die RAM-Disk für nichts verwende, wird von keinem Prozessor tatsächlich darauf zugegriffen. Wenn ich virtuellen Speicher aktiviert habe, würde das Betriebssystem diesen ungenutzten RAM-Block nicht in meine Auslagerungsdatei schreiben und die 2 GB effektiv wieder freigeben?
@dB' Sie haben Recht mit Ihrer ersten Bemerkung zu ungenutztem RAM. Tatsächlich wird es wahrscheinlich stark komprimiert und lässt viel freien RAM zurück. Also habe ich meine Antwort geändert, um die Festplatte mit zufälligen Daten zu füllen, um dies zu umgehen.
Sie können wahrscheinlich einfach alle Berechnungen der Festplattengröße ausgeben und dd die gesamte Festplatte füllen lassen:dd if=/dev/random of=/Volumes/RAM\ Disk/random.dat bs=1024k
@Josh Ich werde das noch einmal versuchen und meine Antwort ändern, wenn es funktioniert. Gestern hatte ich Probleme beim Ausführen des Befehls in einer VM. Ich habe gerade einen „Ressource ausgelastet“-Fehler erhalten und es wurde nichts auf das Volume geschrieben.
Wenn Sie in eine Datei schreiben, of=/Volumes/RAM\ Disk/random.datsollten Sie in Ordnung sein. Wenn Sie auf die Festplatte schreiben, of=/dev/rdisk9müssen Sie root sein, und sie muss möglicherweise ausgehängt werden. (es sollte ausgehängt werden, sonst gerät das System durcheinander)
@josh du hast recht. Danke für den Hinweis. Ich weiß nicht, was gestern schief gelaufen ist, obwohl ich das als root ausgeführt habe.

Ja – verwenden Sie das memory_pressureTool, um echten Speicherdruck auf das System auszuüben.

Es ist keine perfekte Analogie zum Entfernen des Speicherchips, da die Optimierung des virtuellen Speichers immer noch weiß, dass 4 GB oder RAM vorhanden sind, und das Argument -p percent_free keine konstante Menge an RAM zuweist, sondern das System in der Nähe von X Prozent frei hält.

Es sollte Ihnen ermöglichen, sehr schnell zu sehen, ob Ihre Arbeitslast für ein System mit 2 GB RAM geeignet ist, selbst mit der unvollkommenen Analogie.

Wenn Sie den Chip physisch entfernen können, können Sie zuerst Dinge simulieren und einen Benchmark erhalten und dann die Hardware ändern, wenn Sie überprüfen müssen, ob sie genau ist.

Das Hauptproblem, das ich beim Entfernen des physischen Chips sehe, ist, dass der Dual-Channel-Modus auch aus dem Bild entfernt wird. Die erste Option in dieser Antwort scheint der bessere Weg zu sein, da die tatsächlichen Leistungsprobleme einfach von der erhöhten Nutzung herrühren.

Zur Antwort von OSdweeb hinzufügen:

Seit El Capitan ist das Bearbeiten der com.apple.Boot.plistDatei nur möglich, wenn das System Integrity Protocol (SIP) deaktiviert ist (siehe diesen Thread ).

Sie können die Boot-Flags jedoch mit dem folgenden Befehl setzen:

sudo nvram boot-args="maxmem=2048"

Eine andere Lösung wäre, eine virtuelle Maschine zu verwenden, um den Mac mit niedrigerem RAM zu simulieren. Installieren Sie VMWare Fusion, Parallels oder VirtualBox (wenn Sie abenteuerlustig sind) und installieren Sie OS X darin. Dann können Sie die Anzahl der Kerne, den Speicherplatz und (wie Sie angefordert haben) die für OS X verfügbare RAM-Größe manipulieren. VirtualBox ist kostenlos, aber derzeit auf 3 GB für OS X beschränkt, bis die Entwickler 64-Bit-Kernel-Operationen zulassen . Die anderen beiden Produkte haben 30-Tage- bzw. 14-Tage-Testversionen.

-1, Entschuldigung ... das ist kein guter Vergleich. Jetzt haben Sie virtualisierte Videotreiber, virtualisierte E/A und einen kleinen CPU-Leistungseinbruch. Ich liebe Virtualisierung, aber wenn Sie nur sehen möchten, wie das System mit weniger verfügbarem RAM funktionieren würde, ist dies keine gute Lösung.
@Josh Die kleine Leistungseinbuße für die Virtualisierung sollte vernachlässigbar sein: Moderne CPUs verfügen über Hardwareunterstützung für eine solche Aufgabe, sodass die Leistung mit Ausnahme einiger esoterischer Randfälle sehr nahe an Bare-Metal liegt. Außerdem können Sie nicht nur direkt steuern, wie viel Speicher verfügbar ist, Sie können auch die CPU-Frequenz, die verfügbaren Kerne, den verfügbaren Videospeicher und andere Parameter anpassen. Um ältere Maschinen wirklich zu simulieren, kann es sich als nützlich erweisen, diese Optionen zur Verfügung zu haben. Die Leistung eines Betriebssystems ist mehr als nur verfügbarer RAM.
Wenn Sie über Virtualisierung der Enterprise-Klasse wie VMWare ESXi sprechen, dann haben Sie Recht @phyrfox -- über die CPU-Geschwindigkeit . Es gibt einen Leistungseinbruch bei der Grafik- und Videoverarbeitung, der sich bemerkbar macht, wenn Mac OS X ausgeführt wird. Ich stimme zu, Virtualisierung ist die richtige Lösung, wenn Sie die CPU-Frequenz, die verfügbaren Kerne, die Hardware usw. anpassen möchten. Aber bei dieser Frage ging es nur um die Begrenzung verfügbaren RAM, und für diesen Anwendungsfall glaube ich, dass Virtualisierung nicht die richtige Lösung ist.

Um RAM HERAUSZUHOLEN, können Sie:

Wenn Ihr Macbook aus Aluminium ist, nehmen Sie den ganzen Boden ab und der RAM sollte genau in der Mitte sein.

Wenn es weiß ist, nehmen Sie das kleine Fach in der Ecke und greifen Sie auf diese Weise auf den Widder zu.

Quelle: https://support.apple.com/en-ca/HT1651

Beachten Sie, dass er darum bittet, es zu deaktivieren, ohne den RAM physisch zu entfernen.
Damit könnte er sein Problem noch lösen, das meinte ich...
Aber die Frage war: "Gibt es eine Möglichkeit, RAM vorübergehend zu deaktivieren, ohne den Chip physisch zu entfernen?", Das beantwortet also nicht die Frage
Tut mir leid. Ich habe nur gesagt, dass es eine Möglichkeit gibt, Ram herauszunehmen.