MacOS 10.10 auf 4 GB Memory Bloat: Welche Start-Daemons/Agenten/Dienste kann ich deaktivieren? Und wie kann man die Namen der Täter herausfinden?

Ich habe kürzlich eine Neuinstallation von Yosemite (10.10) auf meinem 4 GB 2010 MBP durchgeführt, aber es hat jetzt so viel Speicheraufblähung aufgrund unnötiger Start-Daemons/Agenten/Dienste, dass es häufiges Beachballing verursacht; übermäßiger Gedächtnisdruck.

Dies ist kein Duplikat ; Ich habe seit über einem Monat Manpages/Dokumente zu launchctl, launchd, Yosemite/Sierra whatsnew guides, AskDifferent, SO, Apple.com, vielen Mac-Enthusiasten-Blogs/Foren und vielen anderen Seiten recherchiert; siehe Kommentare unten für Beispiele der vielen Google-Schlüsselwortsuchen, die ich versucht habe; Außerdem ist die Antwort sehr macOS-versionsspezifisch. Das macht mich wahnsinnig.

Ich suche nach einer minimalen Konfiguration: kein Mist wie iCloud, iTunes usw. Nur das absolute Minimum, das zum Ausführen des Betriebssystems benötigt wird. Dinge wie „CloudPhotosConfiguration“ sind eindeutig unnötige Aufblähung. (Aus Gründen, auf die wir hier nicht eingehen, macht es wirtschaftlich wenig Sinn, 8 GB RAM + SSD aufzurüsten).

Frage: Wie finde ich heraus, welche Start-Daemons/Agenten/Dienste ich auf meinem MBP von Mitte 2010 mit 4 GB und Yosemite 10.10 sicher deaktivieren kann?

Der Aktivitätsmonitor zeigt keine offensichtlichen Wale, obwohl die Systemspeichernutzung beim Ausführen von Safari > beim Ausführen von Chrome. Unten ist ein Dump, von dem launchctlItems den Status -44 hatten (beendet wegen unzureichendem Speicher). Basierend auf dem Lesen von Blogs sind einige berüchtigt (z. B. com.apple.bird), einige gelten als unnötig, andere können nicht sicher gestoppt werden:

clear; launchctl list | awk '($2 == "-44") { print $3 }' | sed -e 's/com.apple.//g' | sort -f 

com.apple.
accountsd, AirPlayUIAgent, bird, CalendarAgent,
CallHistoryPluginHelper, CallHistorySyncHelper, cfprefsd.xpc.agent,
cloudd, CloudPhotosConfiguration, cloudphotosd,
coreservices.appleid.authentication, coreservices.uiagent,
DataDetectorsDynamicData, icloud.fmfd, iconservices.iconservicesagent,
imdpersistence.IMDPersistenceAgent, InputMethodKit.UserDictionary,
internetaccounts, MailServiceAgent, Maps.mapspushd, nsurlsessiond,
nsurlstoraged, pbs, photolibraryd, pluginkit.pkd, printtool.agent,
recentsd, secd, secinitd, security.cloudkeychainproxy3, soagent,
spindump_agent, tccd, telephonyutilities.callservicesd
Bitte vermeiden Sie lange Diskussionen in Kommentaren. Wenn Fragen viel Hin und Her erfordern, gibt es immer die Möglichkeit, einen Chatraum dafür zu nutzen.
Die geschriebene Frage ist ziemlich weit gefasst, ich sehe darin mindestens zwei tatsächliche Fragen: "Wie identifiziere ich Dienste, die für die Dinge, die ich tue, nicht ausgeführt werden müssen" und "Wie deaktiviere ich einen Dienst", kann es sein noch mehr sein. Sie erhalten bessere Antworten, wenn Sie sich pro Beitrag auf eine davon konzentrieren (und weitere Fragen in separaten Beiträgen hinzufügen). Auch die erste Frage (wie zu identifizieren) ist möglicherweise einfacher zu beantworten, wenn Sie konkrete Beispiele für Dinge nennen, die Sie auf diesem Mac tun oder nicht tun möchten.
Allerdings frage ich mich, ob es nicht einfacher ist, das Problem des Speicherverbrauchs im Allgemeinen zu lösen (indem man sich den Aktivitätsmonitor usw. ansieht), vor allem, weil macOS normalerweise selbst gute Arbeit leistet, indem es keine Speicher- / CPU-Zyklen für unnötige Prozesse verschwendet .
@patrix: Die Frage ist nicht weit gefasst. Der Hauptstoß ist 1) Wie man unnötige Dienste/Daemons/Agenten identifiziert Ich nehme an, ich muss das. Was den Aktivitätsmonitor anbelangt und versucht, Gedächtnisdruck daraus zu diagnostizieren, ich habe ihn mir in den letzten 7 Jahren täglich angesehen, gibt es in meinem Fall keine offensichtlichen Wale, und das ist er häufig nicht großartig im Diagnostizieren (Beweis: alle Artikel über "Yosemite/Beachballing"). Musst du mir eine grundlegende Kompetenzvermutung geben?
Ich stelle Ihre Kompetenz nicht in Frage, ich versuche sicherzustellen, dass wir beantwortbare Fragen haben, die sowohl dem Fragesteller als auch zukünftigen Besuchern helfen. "Welche Dienste kann ich deaktivieren" und "Wie kann ich einen Dienst deaktivieren" sind verschiedene Fragen. Ich kann eine leicht beantworten, ohne die andere zu beantworten, was es schwierig macht, am Ende eine Antwort abzustimmen / zu akzeptieren. Ich verstehe, dass die Probleme in Ihrem Fall zusammenhängen, die Fragen selbst sind jedoch unterschiedlich.
@patrix: sicher, aber in den Kommentaren von gestern, die du (oder Moderator) komplett gelöscht hast, waren andere Poster sicher. Wie auch immer, Sie wissen, dass ich und Sie die weniger wichtigen Unterfragen zur Befehlssyntax herausgeschnitten haben, also warum haben Sie das nicht auf Eis gelegt? (Nicht, dass es meiner Meinung nach jemals hätte auf Eis gelegt werden sollen, aber trotzdem) Würde mich freuen - ich habe tatsächlich ein Problem, das ich ziemlich dringend lösen muss. (Wie Sie sehen können, bin ich ein langjähriger SO-Benutzer, aber dies ist meine erste Frage, die auf AskDifferent gestellt wird, und zu sagen, dass die Erfahrung unangenehm war, ist milde ausgedrückt.)

Antworten (1)

In der Hoffnung, dass das folgende Aktivieren zum Deaktivieren ist. Apple-Bloat ist ein so weit verbreitetes Problem, dass eine eigene Marke eingetragen werden sollte. Besonders in Situationen oder Umgebungen, die ein Maximum an CPU-Leistung, minimale Latenzzeiten erfordern oder in denen Benutzer mit ihrer Hardware auskommen müssen. Audiobezogene Szenarien sind die häufigsten.

Nicht annähernd genug kann durch die verfügbaren GUI-Tools deaktiviert werden. Das ist also eine ausgezeichnete Frage für den Anfang. Aber diese Umstände müssen klar definiert werden. Das Deaktivieren von fast allem kann auch das gesamte System deaktivieren. Bereiten Sie Ihre bootfähigen Backups vor! Ändern Sie nichts, bevor Sie nicht wissen, wie Sie es rückgängig machen können. Einige der folgenden Ratschläge können in ihren Konsequenzen unbequem zu handhaben sein.

Es ist natürlich der allererste Schritt, alles, was Sie nicht benötigen, das nicht von Apple stammt, zuerst zu deinstallieren. Jede kext, jede LaunchDaemon, jede App und jedes nicht unbedingt benötigte Programm muss raus. Bereinigen Sie die entsprechenden Ordner in /Library/und ~/Library/. Dies impliziert auch, dass der Migrationsassistent jetzt Ihr Feind und eine Neuinstallation Ihr Verbündeter ist.

Unter sehr speicherbeschränkten Umständen wird außerdem empfohlen, die Nutzung des Desktops als Speicherplatz einzuschränken. Und Ihre Nutzung der Finder.app. Viele Symbole auf dem Finder Desktop führen zu erhöhtem Speicherverbrauch. Das heißt auch der Finder muss raus: defaults write com.apple.finder QuitMenuItem -bool trueKeine Sorge. Dies fügt Ihrem geliebten Dateimanager nur ein normales Beenden-Menü hinzu. Wenn er nicht benötigt wird, kann Finder jetzt beendet werden, bleibt beendet und gibt Speicher frei. Wenn es für dateibezogene Vorgänge benötigt wird, bringen Sie es mit einem einfachen Klick auf das erste Dock-Symbol zurück.

Sie müssen eine vollständige Liste der Dinge erstellen, von denen Sie wissen, dass sie da sind, aber Sie sind sich sicher, dass Sie sie nicht wollen. Sie müssen eine Liste mit Dingen und Funktionen/Diensten erstellen, die Ihnen wirklich wichtig sind. Beide Listen müssen später gegengetestet werden.

Sie werden ziemlich viel Zeit im Aktivitätsmonitor und in der Konsole verbringen. Dies ist ein langwieriger Prozess. Nachdem Sie die Liste der laufenden Prozesse durchgegangen sind, sollten Sie alles untersuchen, was Sie entweder nicht erkennen oder als höchstwahrscheinlich unerwünscht erkennen. Schlagen Sie sie nach und suchen Sie im Netz nach dem Prozessnamen.

Da dies kein Wiki mit unbegrenztem Platz ist, kann ich nicht jeden Prozess auflisten, der von einem oder mehreren als „aufgebläht“ oder „kann sicher deaktiviert werden, wenn er unerwünscht ist“ beurteilt wird. Das hängt auch zu sehr davon ab, was sonst noch über „iCloud“ gehen soll.

Apple ist wirklich schlecht darin, diese Dinge für den durchschnittlichen Endbenutzer zu dokumentieren, der nur an seinem System sitzt. Es sieht so aus, als würde macOS den Ansatz "keine vom Benutzer zu wartenden Teile im Inneren" bevorzugen. Man muss also genau auswerten, was man im Netz findet. Versuchen Sie, oberflächliche Analysen (oder zumindest oberflächliche Zusammenfassungen / Zuschreibungen) zu erkennen, die wenig Details enthalten, außer Apple-know-best handwaving.

Was ist daran lustig? Apple weiß es tatsächlich am besten. Sie entscheiden sich einfach dafür, dieses Wissen zu verstecken. Es befindet sich teilweise auf ihrer Website, anstatt Ihnen Tooltips und installierte Dokumentation zu geben. Die Teile, auf die dort zugegriffen werden kann, liegen außerdem in einem Format vor, das eine gewisse Bearbeitung durch den Endbenutzer erfordert. Versuchen Sie Ihr Glück bei Apple zum Beispiel unter: Daemons and Services Programming Guide . Sie können und sollten natürlich in ihren Benutzerforen nachsehen (bereiten Sie einen großen Salzstreuer vor, um einen ausreichenden Vorrat an Körnern bereit zu haben). Oder genau diese Seite oder die anderen. Denken Sie nur an das vermutete Qualitätsniveau der jeweiligen Quelle.

Die meisten Prozesse, die im Aktivitätsmonitor ausgeführt und angezeigt werden, können (erzwungen) beendet werden. Dies ist im Allgemeinen in einer Testumgebung ziemlich sicher, wenn keine wichtigen Arbeiten im Hintergrund oder ähnliches geöffnet sind. (Es gelten Einschränkungen!) Auf diese Weise können Sie nacheinander testen und empirisch sehen, was passiert:

  • Respawnen sie sofort oder nach einiger Zeit oder erst nach einem Neustart?
  • Funktioniert etwas Unerwartetes nicht, nachdem Sie den Prozess deaktiviert haben?

Wenn nichts Unerwartetes passiert, können Sie mit dem nächsten Schritt fortfahren.

Es gab eine ausgezeichnete Liste bekannter Prozesse und eine kurze Erklärung mit dem Titel „Kennen Sie Ihre Mac OS X-Prozesse“. Dies ist leider verschwunden, aber immer noch bei archive.org sichtbar: https://web.archive.org/web/20170222052540/http://triviaware.com/macprocess/all Das bedeutet natürlich, dass es zunächst etwas veraltet ist mit, aber immer noch aktueller als die meisten Top-Suchmaschinentreffer heute. Da Sie sich auf Yosemite befinden, ist dies für die aktuelle Situation weniger besorgniserregend.

launchdMachen Sie sich jetzt mit und vertraut launchctl. Der erste ist der Daemon, der all "diesen Mist" (Ihre Worte) lädt, und mit dem zweiten können Sie mit launchd interagieren und ihn steuern.

Wenn Sie sehen, dass das Beenden eines Prozesses keine negativen Auswirkungen auf Ihre Bedürfnisse hat, können Sie das System anweisen, diesen "Dienst" zu deaktivieren. Sie können launchctldies oder eines der Programme verwenden, die verfügbar sind, um dies mit einer GUI zu erreichen, wie z

Schauen Sie sich den Job an und versuchen Sie zu verstehen, was er tut. Stoppen Sie einen Job und sehen Sie, was passiert. Deaktivieren Sie dann den Job und sehen Sie, was passiert. Machen Sie dazwischen Pausen und starten Sie oft neu, um zu sehen, dass Sie nicht zu viel durcheinander gebracht haben, was beim Booten oder nur einmal erforderlich sein könnte.

Der Umgang mit völlig unerwarteten Konsequenzen kann schwierig sein, da manchmal wirklich seltsame Verbindungen hergestellt werden müssen. Keine Notwendigkeit für Airplay? Deaktivieren Sie alle Kontrollkästchen in der GUI. Deaktivieren Sie alles, was Airplay im Namen hat. Einfach. Danach funktioniert alles wie erwartet. Außer nach einer Weile bemerken Sie, dass iTunes beim Start immer wieder abstürzt. Keine Notwendigkeit für iTunes auch? Gut. Möchten Sie immer noch iTunes verwenden? Schlecht, schlecht. Schade. Gehen Sie zurück zu Ihrer Liste der absichtlich deaktivierten Dienste und aktivieren Sie sie nacheinander erneut. um endlich herauszufinden, dass iTunes auf einem SystemDaemon namens com.apple.AirPlayXPCHelper besteht. Erwarte das Unerwartete.

Um Ihnen einen Vorsprung für Dinge zu geben, die als aufgebläht gelten: Es gibt viele Sammlungen im Netz, die versuchen, das zu erreichen, was Sie wollen. Das Folgende ist als Quelle gedacht, die zur Inspiration gelesen und analysiert werden kann. Wenden Sie sie nicht einfach an! Lesen Sie die Dokumente für sie! Wählen Sie nacheinander aus, was benötigt wird. (Da Sie sowieso Ihre eigenen Ergebnisse dokumentieren sollten – warum sollten Sie sie nicht veröffentlichen?)

Sie sind nicht vollständig auf jede Version von OS X oder macOS anwendbar, einige von ihnen haben noch unterschiedliche Revisionen online. Aber es scheint, dass nur nach entfernten oder neu eingeführten Daemons Ausschau gehalten werden soll.

Minimale Systeme, optimiert für Audio:

„Deaktiviere einen Haufen #$!@ in Sierra (Version 2.1):“ https://gist.github.com/pwnsdx/d87b034c4c0210b988040ad2f85a68d3

Ein praktischer Leitfaden zur Sicherung von macOS: https://github.com/drduh/macOS-Security-and-Privacy-Guide

Aktueller Nachfolger von osxlockdown: https://github.com/kristovatlas/osx-config-check

"Einfaches Shell-Skript zum Beheben von macOS-Datenschutzproblemen und Entfernen von meist nutzlosen macOS-Aufrufen an Cupertino": https://github.com/karek314/macOS-home-call-drop

Hier sind nur kleine Portionen wirklich anwendbar, aber dennoch einige einzigartige Artikel: https://gist.github.com/brandonb927/3195465

Beachten Sie auch „Entladen und deaktivieren Sie unerwünschte Agenten und Daemons unter OSX“: http://tech.masterofsql.com/os-x/unload-disable-unwanted-agents-daemons-os-x.html

Lass jetzt die Downvotes kommen. Hoffe das hilft.

Hervorragende Anleitung, aber mir scheint, dass das Schreiben von Linux einfacher ist, als die Aufblähung von MacOS 10.10 forensisch zu beseitigen. Angenommen, ich möchte nur alle iCloud-bezogenen Startelemente am 10.10 deaktivieren: Gibt es darauf keine 5-Minuten-Antwort? Wie auch immer, ich werde Ihre Ressourcenliste durchgehen und Sie wissen lassen, was ich finde.
Leider nicht in 5 min. Mangelnde Dokumentation und Inkonsistenzen bei der Benennung erschweren dies. Alle Gegenstände mit „Wolke“ in ihrem Namen sind ein offensichtlicher Kandidat, Ubiquitysind aber auch Teil dieses Pakets. Es ist also schwierig festzustellen, was Apple (oder Sie) genau unter iCloud subsumiert.
Ja in 5 Minuten: Das Deaktivieren von OSX Yosemite-Ärgern / -Funktionen, die ich nicht verwende, ist der Blog-Post von 'guycalledseven', verdammt großartig! Mein „komprimierter Speicher“ im Aktivitätsmonitor wurde von ~2,5–3,4 GB auf < 500–800 MB reduziert!! Ich werde eine Antwort posten, sobald ich den Diagnoseteil gelöst habe.
Das ist beeindruckend. Dies gilt umso mehr, als dieser Leitfaden nur einen kleinen Teil dieser Dienste und Daemons abdeckt. (i)Cloud allein hat viel mehr Teile. Das zu deaktivieren ist.