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


30

Ich habe 2009 zwei Macbooks. Man hat 4 GB RAM und läuft OS 10.10; man hat 2 gigs und läuft os 10.5.

Ich denke darüber nach, die letzte Maschine auf Yosemite (10.10) zu aktualisieren, aber ich mache mir Sorgen, dass sie mit so wenig RAM langsam läuft. Um ein Gefühl für die Leistung zu bekommen, frage ich mich, ob ich auf irgendeine Weise die Hälfte des Arbeitsspeichers in der Maschine mit höheren Spezifikationen "ausschalten" kann. Wenn ich das täte, könnte ich ein Gefühl dafür bekommen, wie Yosemite auf dem 2-Gig-Rechner laufen würde, bevor ich das Upgrade tatsächlich durchführe.

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


Warum muss der Chip nicht entfernt werden? Könnten Sie nicht einfach den physischen Arbeitsspeicher der beiden MacBooks austauschen?
Saaru Lindestøkke

4
Ich habe nicht den richtigen Schraubendreher zur Hand.
dB am

3
2009 MacBook Pro akzeptiert DDR3-RAM mit 1333 MHz (bis zu einer Geschwindigkeit von 1066 MHz). Sie können für 30 $ kaufen. Diese Maschinen werden bis zu 8 GB aufnehmen. Wenn Sie eine SSD hinzufügen, ist dies immer noch eine sehr anständige Maschine.
Jasper Blues

@dB 'Bitte akzeptieren Sie die Antwort von OSdweeb. anstelle von mir. Obwohl Sie neu starten müssen, ist dies eine elegante und standardmäßige Methode. Sie liefert ein zuverlässigeres Ergebnis für 10.9 / 10.10 und wahrscheinlich auch später. Die RAM-Disk funktioniert unter Mac OS X bis 10.8 ohne Neustart und Manipulation von Systemdateien.
Klanomath

Antworten:


25

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

Einfach Terminal als Sudoer öffnen und eintreten

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 schreibe die Änderungen auf die Festplatte mit ctrlound beende nano mitctrlx

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.


2
Mein Gehirn ist eine alte Mülltonne ... Gestern habe ich versucht, diese einfache Lösung zu finden, sei es in die Hölle oder ins Hochwasser - und ich wusste, dass es sie gibt - aber ich erinnerte mich einfach nicht daran.
klanomath

1
Übrigens: Sie sollten die Registrierung besser abschließen, da Sie sich sonst nicht mehr in Ihrem Konto anmelden können, wenn Sie versehentlich Ihre Cookies verlieren.
Nicoleel

Während diese Antwort, wie am 4. April 15 geschrieben, 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. Informationen zum Ändern des Systemintegritätsschutzes in El Capitan finden Sie unter So ändern Sie den Systemintegritätsschutz in El Capitan , und obwohl die Anweisungen für El Capitan gelten, gelten für neuere Versionen von macOS dieselben grundlegenden Anweisungen.
user3439894

14

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

Multiplizieren Sie (RAMdiskSize in MB) * 2048, um die erforderliche Anzahl von Blöcken zum Erstellen einer solchen Festplatte zu erhalten. In Ihrem Beispiel ist 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 Nachricht:

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-MB-Brocken zufälliger Daten in die Datei random.dat auf dem RAM-Datenträger, bis sie voll sind.

Dadurch sollte der verfügbare RAM-Speicher künstlich um ~ 2 GiB reduziert werden, 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 neuesten Systemen (ab 10.9).
Der von der RAM-Disk genutzte Speicher sollte nicht auf die Festplatte ausgelagert werden. Abhängig von der Qualität der zufälligen Datendatei kann er jedoch 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 Gigs RAM für eine RAM-Disk bestellt. Die 2 GB RAM sind zugewiesen, aber da ich die RAM-Disk für nichts benutze, wird von keiner verarbeiteten gerade darauf zugegriffen. Wenn ich über virtuellen Speicher verfüge, würde das Betriebssystem diesen nicht verwendeten RAM-Block dann nicht in meine Swap-Datei schreiben und so die beiden Gigs effektiv wieder freigeben?
dB am

@dB 'Sie haben Recht mit Ihrer ersten Bemerkung zu nicht verwendetem RAM. Tatsächlich wird es wahrscheinlich stark komprimiert, so dass viel freier Arbeitsspeicher verbleibt. Also habe ich meine Antwort geändert, um die Festplatte mit zufälligen Daten zu füllen und das zu umgehen.
klanomath

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,

@Josh Ich werde das noch einmal versuchen und meine Antwort ändern, wenn es funktioniert. Gestern hatte ich Probleme, den Befehl in einer VM auszuführen. Ich habe gerade eine Fehlermeldung erhalten, dass die Ressource ausgelastet ist, und es wurde nichts auf den Datenträger geschrieben.
klanomath

Wenn Sie in eine Datei schreiben, of=/Volumes/RAM\ Disk/random.datsollte es Ihnen gut gehen. Wenn Sie auf die Festplatte schreiben, of=/dev/rdisk9müssen Sie als Root angemeldet sein und möglicherweise die Bereitstellung aufheben. (Es sollte nicht montiert sein, sonst wird das System verwirrt)
Josh

8

Ja - Verwenden Sie das memory_pressureTool, um echten Speicherdruck auf das System anzuwenden.

Es ist keine perfekte Analogie zum Entfernen des Speicherchips, da die Optimierung des virtuellen Speichers immer noch 4 GB oder RAM kennt und das Argument -p percent_free keine konstante RAM-Menge zuweist, das System jedoch nahe an X Prozent frei hält.

Es sollte Ihnen ermöglichen, sehr schnell zu erkennen, ob Ihre Arbeitslast auch mit der unvollkommenen Analogie einem System mit 2 GB RAM zugänglich ist.

Wenn Sie den Chip physisch entfernen können, können Sie zunächst die Dinge simulieren und einen Benchmark erhalten. Anschließend können Sie die Hardware ändern, wenn Sie die Richtigkeit überprüfen müssen.


Das Hauptproblem beim Entfernen des physischen Chips ist, dass der Dual-Channel-Modus auch aus dem Bild entfernt wird. Die erste Option in dieser Antwort scheint die bessere Lösung zu sein, da die eigentlichen Leistungsprobleme einfach auf der erhöhten Nutzung beruhen.
Thebluefish

3

Hinzufügen zu OSdweebs Antwort:

Seit El Capitan kann die com.apple.Boot.plistDatei nur bearbeitet werden, wenn das System Integrity Protocol (SIP) deaktiviert ist (siehe diesen Thread ).

Sie können die Startflags jedoch mit dem folgenden Befehl festlegen:

sudo nvram boot-args="maxmem=2048"


2

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 etwas abenteuerlustig sind) und installieren Sie OS X darin. Anschließend können Sie die Anzahl der Kerne, den Festplattenspeicher und den (von Ihnen angeforderten) verfügbaren Arbeitsspeicher für OS X ändern. VirtualBox ist kostenlos, für OS X jedoch derzeit auf 3Gb beschränkt, bis die Entwickler 64-Bit-Kernel-Vorgänge zulassen . Die anderen beiden Produkte haben 30-Tage- bzw. 14-Tage-Testversionen.


-1, sorry ... das ist kein guter Vergleich. Jetzt haben Sie Grafiktreiber, E / A und einen kleinen CPU-Leistungseinbruch virtualisiert. Ich liebe Virtualisierung, aber wenn Sie nur sehen möchten, wie das System mit weniger verfügbarem RAM abschneidet, ist dies keine gute Lösung.
Josh

@Josh Der geringe Leistungsverlust für die Virtualisierung sollte vernachlässigbar sein: Moderne CPUs bieten Hardware-Unterstützung für eine solche Aufgabe, sodass die Leistung mit Ausnahme einiger esoterischer Randfälle sehr nahe am Bare-Metal-Standard liegt. Außerdem können Sie nicht nur direkt steuern, wie viel Speicher verfügbar ist, sondern 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.
Phyrfox

Wenn Sie über Virtualisierung auf Unternehmensniveau wie VMWare ESXi sprechen, dann haben Sie @phyrfox Recht - über die CPU-Geschwindigkeit . Die Grafik- und Videoverarbeitung leidet unter Leistungseinbußen, die sich unter Mac OS X bemerkbar machen. Ich stimme zu, Virtualisierung ist die richtige Lösung, wenn Sie die CPU-Frequenz, die verfügbaren Kerne, die Hardware usw. anpassen möchten. Bei dieser Frage ging es jedoch ausschließlich um Einschränkungen verfügbarer RAM, und für diesen Anwendungsfall glaube ich, dass Virtualisierung nicht die richtige Lösung ist.
Josh

-1

Um RAM AUSZUNEHMEN, können Sie:

Wenn Ihr Macbook aus Aluminium besteht, nehmen Sie den gesamten Boden ab und der Arbeitsspeicher sollte genau in der Mitte liegen.

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

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


1
Beachten Sie, dass er bittet, es zu deaktivieren, ohne den RAM physisch zu entfernen.
Spotlight

Er konnte sein Problem immer noch damit lösen, was ich meinte ...
Kachamenus

2
Aber die Frage war : „Gibt es eine Möglichkeit , um vorübergehend deaktivieren RAM ohne den Chip physikalisch zu entfernen?“, So dass dies nicht die Frage beantworten
Josh

Tut mir leid. Ich habe nur gesagt, dass es einen Weg gibt, den Widder herauszunehmen.
Kachamenus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.