
Skryté aplikace na pozadí mohou zpomalovat váš Mac. Zde je návod, jak napravit tento potenciální dopad na výkon vašeho Macu.
V jakémkoli počítačovém systému založeném na UNIXu, včetně macOS, operační systém spouští různé procesy na pozadí, které tiše provádějí určité úkoly. V systému macOS se obecně dělí do dvou kategorií: démoni a agenti.
Démon je anonymní úloha na pozadí, která běží nepřetržitě, aby provedla některé úkoly. V systému macOS existuje několik běžných démonů: spuštěný pro spouštění dalších procesů, účty (které spravuje uživatelské účty), cloud – který spouští služby iCloud, bluetoothd – pro služby BlueTooth a mnoho dalších.
Podobně jako démoni jsou agenti, aplikace na pozadí, které mají povolenou interakci s aplikacemi v popředí a příležitostně představují malá uživatelská rozhraní. securityd je jedním z takových příkladů, protože tohoto agenta vidíte v akci pokaždé, když váš Mac požádá o heslo správce.
Většinu procesů, včetně démonů a agentů, běžících na Macu můžete zobrazit otevřením aplikace Monitor aktivity macOS, která se nachází ve složce Utilities na spouštěcí disketě. Podrobnosti o spuštěných procesech v Terminálu můžete také zobrazit zadáním top a lisování Vrátit se.
Většina systémových démonů a agentů společnosti Apple byla v průběhu let dobře propracována. Po desetiletích vývoje běží hladce a plynule, takže si jejich běhu sotva kdy všimnete.
Existují však také démoni a agenti třetích stran. Pokud jsou špatně napsané, mohou mít špatný výkon, zabírat čas CPU, způsobit nadměrný přístup k disku a jinak se chovat způsobem, který může zpomalit váš Mac.
Místa
V současné době v systému macOS žijí démoni a agenti ve dvou složkách ve složce /Library: LaunchAgents a LaunchDaemons.
Ve skutečnosti binární soubory démona a agenta, které se spouštějí, v těchto složkách nežijí – místo toho .plist nebo soubory seznamu vlastností žijí v obou umístěních. Soubory .plist jsou soubory XML, které obsahují páry klíč-hodnota – přičemž každý klíč je název s odpovídající hodnotou.
Ve složce Library vašeho uživatele je také druhá složka LaunchAgents. Soubory .plist můžete otevřít a zobrazit ve většině textových editorů nebo ve vlastním IDE společnosti Apple, Xcode.
Každý soubor .plist obsahuje popis každého démona nebo agenta spolu s dalšími daty, která systému říkají, kdy a jak jej spustit. Jedno pole v každém .plist se jmenuje „ProgramArguments“, což je pole položek včetně cest v systému souborů, kde se ve skutečnosti nacházejí spouštěné binární soubory.
Například v souboru XQuartz org.xquartz.startx.plist ve složce /Library/LaunchAgents obsahuje pole ProgramArguments čtyři textové položky, z nichž tři obsahují cesty do jiných částí systému souborů:
- /opt/X11/libexec/launchd_startx
- /opt/X11/bin/startx
- /opt/X11/bin/Xquartz
Každá z těchto tří cest ukazuje na binární soubory, které má systém spustit v různých časech, všechny v neviditelné složce /opt nainstalované XQuartz v době instalace. Některé .plisty mohou také obsahovat informace o spuštění pro každého démona nebo agenta, například v jakém intervalu je spouštět a na jak dlouho.
Další pole v .plist v tomto příkladu zahrnují parametr soketu UNIX, klíč „ServiceIPC“ a klíč „EnableTransactions“.
„IPC“ je zkratka pro meziprocesovou komunikaci. Představte si IPC (nebo v terminologii Applu XPC) jako potrubí spojující dva procesy na vašem Macu, po kterém probíhá komunikace.
Když se váš Mac spustí, macOS projde složky LaunchAgents a LaunchDaemons a přečte všechny soubory .plist. Také si dělá poznámky o tom, co je třeba spustit, kde se tyto položky nacházejí na disku, v jakém intervalu je spouštět a jak dlouho je povolit.
Když nastane zadaný čas, spustí se a spustí binární soubory na uvedených cestách. Někteří démoni a agenti běží nepřetržitě, zatímco někteří pouze periodicky.
Automatické aktualizační programy jsou dobrými příklady démonů, kteří se spouštějí často a po dokončení aktualizačních úloh se ukončí.
Špatně napsaní démoni
Pokud je démon nebo agent špatně napsán, může být neefektivní a běží pomalu, což snižuje celkový výkon systému. Pokud je kód démona příliš pomalý nebo trvá příliš dlouho, než dokončí některé úkoly, nebo pokud spotřebovává příliš mnoho času CPU, může to zpomalit systém.
Pokud běží mnoho takových špatně napsaných démonů a agentů najednou, pocítíte znatelné zpomalení celkového výkonu systému.
Ve složce Library vašeho Macu je také další složka s názvem „PrivilegedHelperTools“. Tyto binární soubory se také spouštějí prostřednictvím souborů .plist uložených v LaunchAgents a LaunchDaemons.
Privilegovaný pomocný nástroj je jednorázový spustitelný binární soubor, který běží krátce, a to pouze proto, že musí zvýšit úroveň oprávnění v systému, provést zabezpečenou úlohu a pak se ukončit.
Některé úlohy v macOS vyžadují přístup superuživatele, a proto by se staly bezpečnostními riziky, pokud by byly ponechány nepřetržitě spuštěné. Pomocné nástroje tedy snižují jakýkoli povrch útoku tím, že běží pouze krátce.
Logika je taková, že pokud úloha neběží jako superuživatel, je obtížnější ji zneužít jako vektor útoku ze škodlivého softwaru.
Odstranění pomalých démonů a agentů
Jak již bylo zmíněno, pokud na vašem Macu běží příliš mnoho démonů a agentů najednou nebo pokud je jeden nebo více z nich špatně napsáno, může to zpomalit váš Mac. Chcete-li v těchto případech znovu získat normální výkon, budete muset zjistit, kteří démoni nebo agenti způsobují problémy s výkonem, a poté zakázat jejich soubory .plist a restartovat Mac.
Je například známo, že někteří agenti, kteří se instalují jako součást některých herních enginů třetích stran, běží pomalu nebo táhnou systém dolů. V těchto případech možná budete chtít přesunout jejich soubory .plist stranou a poté restartovat, což zabrání jejich spuštění.
Všimněte si, že není nutné zcela odinstalovat problematický software – stačí pouze přesunout jejich odpovídající. plist ze složek LaunchAgents a LaunchDaemons ve všech nainstalovaných umístěních a restartujte. Později, pokud budete chtít software znovu používat, můžete přesunout soubory .plist zpět na místo nebo software přeinstalovat a restartovat znovu, abyste obnovili funkčnost.
Chcete-li zjistit, kteří démoni a agenti využívají nejvíce systémových prostředků, můžete spustit Monitor aktivity společnosti Apple a zkontrolovat sloupce „% CPU“ a „Vlákna“. Ty poskytují vodítka k tomu, které procesy nejvíce zatěžují procesory vašeho Macu.
Pomocí nástroje Activity Monitor můžete také zkontrolovat využití paměti, energie, disku a sítě.
Jakmile zjistíte, které procesy na pozadí zatěžují zdroje vašeho systému, můžete se vrátit zpět do složek LaunchAgents a LaunchDaemons a přetáhnout jejich odpovídající soubory .plist z těchto složek. Budete muset uspořádat a sledovat soubory .plist, abyste věděli, kam je přesunout zpět, když budete chtít obnovit funkčnost.
Chcete-li přesunout soubory .plist z jejich nainstalovaných složek, budete muset na výzvu Finderu zadat heslo správce. Nezapomeňte restartovat Mac.
Další možnou možností je upravit obsah každého souboru .plist, pokud obsahuje intervaly a časy spouštění – můžete například zkusit zvýšit interval spouštění v každém souboru .plist, aby se každý démon spouštěl méně často.
Při provádění těchto úprav však buďte velmi opatrní, protože může dojít ke změně funkčnosti nainstalovaného softwaru.
Démoni a agenti navržení tak, aby běželi nepřetržitě, to dělají z nějakého důvodu – obvykle proto, aby poskytovali nějakou službu na pozadí nebo službu aplikaci v popředí. Jejich zakázání způsobí ztrátu funkčnosti, pokud nebudou spuštěny, když je aplikace očekává.
Méně je více
Obecně platí, že chcete na svém systému spouštět co nejméně démonů a agentů. I když jsou všechny dobře napsané, každý z nich, který je přidán, trochu zatěžuje systém a CPU, i když je to nepatrné množství.
Pokud máte několik desítek démonů a agentů spuštěných najednou, vše se sčítá a váš Mac začne zpomalovat.
Po instalaci nového softwarového balíčku možná budete chtít zkontrolovat složky LaunchAgents a LaunchDaemons, abyste zjistili, co se nainstalovalo a zda je potřebujete nebo ne.
Pokud vás zajímá podrobný pohled na vývoj démonů a agentů na macOS, podívejte se na Mac Daemonology od Volodymyra Vashurkina, který je k dispozici v knihách APRESS.
Můžete také získat podrobnou technickou diskusi o tom, jak fungují služby XPC společnosti Apple na webové stránce pro vývojáře.
Zdroj: appleinsider.com