Nehmen wir an, wir haben einen OS X-Computer mit 4 GB RAM. Ist es möglich, es so einzurichten, dass kein einzelner Prozess mehr als beispielsweise 3 GB beanspruchen kann. Unabhängig davon, wie viel Speicher ein Prozess beansprucht, bleibt immer etwas Speicher übrig, damit das System reagiert?
12
Antworten:
Eine ähnliche Frage wird hier gestellt. Wie kann ich die RAM-Menge begrenzen, die eine Mac OS-Anwendung verwenden kann?
Sie empfehlen die Verwendung des Befehls ulimit , konnten den Betrag jedoch nicht erfolgreich auf das gewünschte Maß beschränken. Ich denke, das Problem, auf das sie gestoßen sind, war die Tatsache, dass die Option -u oder -v nicht für das Speicher-Paging-System verantwortlich war, z. B. können Sie nur X Speicherplatz für Ihren Prozess in echtem RAM zuweisen, aber wir können blättern Sie den ganzen Tag in den virtuellen Speicher.
Beachten Sie, dass dies eine gefährliche Deaktivierung des virtuellen Speichers sein kann. Dies kann dazu führen, dass Ihr Mac nur abstürzt usw., wenn kein RAM mehr vorhanden ist.
Versuchen Sie, ulimit mit den Argumenten -l, -m oder -v auszuführen, jedoch wie in der ulimit-Manpage angegeben, bis zum Betriebssystem, ob diese Einstellungen beachtet werden oder nicht.
Es kann keine eindeutige Quelle gefunden werden, die bestätigt, ob OS X ulimit ignoriert oder nicht, aber nachdem das referenzierte ulimit fehlgeschlagen ist
Wenn Sie ulimit dazu bringen können, selbstständig für Ihre Anforderungen zu arbeiten, probieren Sie es aus. Wenn dies nicht der Fall ist, können Sie mit einer Kombination aus ulimit und / oder Deaktivieren des virtuellen Speichers möglicherweise diese 3-GB-Grenze für ausgewählte Prozesse festlegen. Zu Ihrer Information: Hier finden Sie einen guten Link für weitere Informationen zum vollständigen Deaktivieren des virtuellen Speichers in Snow Leopard System 10.6
quelle
Wenn Sie Lion (oder einen neueren OSX) Server auf Ihrem Mac ausführen, können Sie OSX möglicherweise in einer VM (VirtualBox, Parallels oder VMWare usw.) auf diesem Mac ausführen. Beschränken Sie die VM auf 3 GB physischen RAM, und jede App oder jeder Prozess in der VM ist ebenfalls so eingeschränkt. Das System, auf dem sich die VM befindet, sollte auch dann reaktionsfähig bleiben, wenn das Betriebssystem in der VM auf Backing-Swap-Festplatten beschränkt ist oder abstürzt.
Wenn Sie einen möglicherweise außer Kontrolle geratenen Prozess debuggen, können Sie möglicherweise in die VM ssh, um den Debugger oder einen Debug-Nub über die Befehlszeile auszuführen und Dinge zu protokollieren, bis die Dinge abstürzen.
quelle