MacOS 10.10 на 4 ГБ памяти: какие запускаемые демоны/агенты/службы можно отключить? И как узнать имена виновных?

Недавно я выполнил чистую установку Yosemite (10.10) на моем MBP 4 ГБ 2010 года, но теперь у него так много памяти из-за ненужных запускающих демонов / агентов / служб, что это вызывает частые пляжные игры; чрезмерная нагрузка на память.

Это не дубликат ; Я исследовал man-страницы/документы по launchctl, launchd, руководствам Yosemite/Sierra whatsnew, AskDifferent, SO, Apple.com, многим блогам/форумам энтузиастов Mac и многим другим сайтам уже больше месяца; см. комментарии ниже для примеров многих поисковых запросов по ключевым словам Google, которые я пробовал; Кроме того, ответ очень зависит от версии MacOS. Это сводит меня с ума.

Я ищу минимальную конфигурацию: никакой херни типа iCloud, iTunes и т. д. Только абсолютный минимум, необходимый для запуска ОС. Ясно, что такие вещи, как «CloudPhotosConfiguration», не нужны. (По причинам, которые мы не будем здесь рассматривать, нет особого экономического смысла обновлять 8 ГБ ОЗУ + SSD).

Вопрос: Как узнать, какие демоны/агенты/службы запуска я могу безопасно отключить на моем MBP середины 2010 года с 4 ГБ памяти под управлением Yosemite 10.10?

Монитор активности не показывает явных китов, хотя использование системной памяти при запуске Safari > при запуске Chrome. Ниже приведен дамп launchctlэлементов со статусом -44 (убит из-за нехватки памяти). Основываясь на чтении блогов, некоторые из них печально известны (например, com.apple.bird), некоторые считаются ненужными, некоторые нельзя безопасно остановить:

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
Пожалуйста, избегайте длительных дискуссий в комментариях. Если вопросы требуют много времени, всегда есть возможность использовать для этого чат.
Вопрос в том виде, как он написан, довольно широк, я вижу там по крайней мере два актуальных вопроса: «Как мне определить службы, которые не нужно запускать для того, что я делаю» и «Как мне отключить службу», может быть еще больше. Вы получите лучшие ответы, если сосредоточитесь на одном из них в посте (и добавите больше вопросов в отдельные посты). Также на первый вопрос (как идентифицировать) может быть легче ответить, если вы приведете конкретные примеры того, что вы хотите или не хотите делать на этом Mac.
Сказав это, я задаюсь вопросом, может ли быть проще решить проблему потребления памяти в целом (посмотрев на монитор активности и т. д.), в первую очередь потому, что macOS обычно хорошо справляется со своей задачей, не тратя циклы памяти/процессора на процессы, которые не нужны .
@patrix: вопрос не широкий. Основное направление: 1) Как идентифицировать ненужные сервисы/демоны/агенты». В документе неясно, как 2) сервисы/демоны/агенты связаны, и я думаю, что удаление этого повреждает вопрос, но если вы настаиваете, что я должен, тогда я полагаю придется.Что касается Монитора Активности и попытки диагностировать нехватку памяти от него, то я смотрю на него ежедневно последние 7 лет, явных китов в моем случае нет, да и часто не бывает отлично ставит диагнозы (доказательство: все статьи о Йосемити/бичболе). Вы должны дать мне базовую презумпцию компетентности..?
Я не ставлю под сомнение вашу компетентность, я пытаюсь убедиться, что у нас есть ответы на вопросы, которые помогут как задающему, так и будущим посетителям. "какие службы я могу отключить" и "как я могу отключить службу" - это разные вопросы, я могу легко ответить на один, не отвечая на другой, что затруднит проголосовать/принять ответ в конце. Я понимаю, что вопросы связаны в вашем случае, тем не менее сами вопросы разные.
@patrix: конечно, но во вчерашних комментариях, которые вы (или модератор) полностью удалили, наверняка был другой постер. В любом случае, вы знаете, что я и вы отредактировали менее важные подвопросы о синтаксисе команд, так почему вы не отложили это? (не то, чтобы это когда-либо должно было быть отложено, ИМО, но в любом случае) Был бы признателен - у меня действительно есть проблема, которую мне нужно решить довольно срочно. (Как видите, я давний пользователь SO, но это мой первый вопрос, заданный на AskDifferent, и сказать, что опыт был неприятным, это мягко сказано)

Ответы (1)

В надежде, что следующее позволяет отключить. Apple-Bloat — настолько распространенная проблема, что у нее должна быть зарегистрирована собственная торговая марка. Особенно в обстоятельствах или средах, требующих максимальной мощности процессора, минимальной задержки или когда пользователям приходится обходиться тем оборудованием, которое у них есть. Сценарии, связанные со звуком, являются наиболее распространенными.

Не так много можно отключить с помощью доступных графических инструментов. Так что это отличный вопрос для начала. Но эти обстоятельства должны быть четко определены. Отключение почти всего может также отключить всю систему. Подготовьте загрузочные резервные копии! Ничего не меняйте, пока не узнаете, как это отменить. Некоторые из следующих советов могут быть неудобными из-за их последствий.

Конечно, это самый первый шаг к удалению всего, что вам не нужно, но не от Apple — сначала. Каждое kext, каждое LaunchDaemon, каждое приложение и каждая программа, которая не является строго необходимой, должны быть удалены. Очистите соответствующие папки в /Library/и ~/Library/. Это также означает, что Помощник по миграции теперь ваш враг, а чистая установка — ваш союзник.

В условиях очень ограниченного объема памяти также рекомендуется ограничить использование рабочего стола в качестве места для хранения. И ваше использование Finder.app. Наличие большого количества значков на рабочем столе Finder приводит к увеличению потребления памяти. Это означает, что Искатель также должен уйти: defaults write com.apple.finder QuitMenuItem -bool trueне беспокойтесь. Это просто добавление обычного меню выхода в ваш любимый файловый менеджер. Теперь, когда Finder не нужен, его можно закрыть, он остается закрытым и освобождает память. Когда это необходимо для операций, связанных с файлами, вы можете вернуть его, просто щелкнув первый значок Dock.

Вы должны составить полный список того, что, как вы знаете, «есть», но вы уверены, что вам это не нужно. Вы должны составить список вещей и функций/услуг, которые вам действительно небезразличны. Оба списка должны быть проверены позже.

Вы проведете довольно много времени в Мониторе активности и Консоли. Это утомительный процесс. После того, как вы прошлись по списку запущенных процессов, вы должны исследовать все, что вы либо не распознаете, либо признаете, скорее всего, нежелательным. Найдите их и выполните сетевой поиск по имени процесса.

Поскольку это не вики с неограниченным пространством, я не могу перечислить каждый процесс, оцененный одним или многими как «раздутый» или «можно безопасно отключить, если это нежелательно». Это также слишком сильно зависит от того, что еще должно быть выше «iCloud».

Apple действительно плохо документирует эти вещи для среднего конечного пользователя, просто сидящего за своей системой. Похоже, что macOS предпочитает подход «внутри нет частей, обслуживаемых пользователем». Таким образом, вы должны тщательно оценить то, что вы найдете в сети. Постарайтесь обнаружить бойкие анализы (или, по крайней мере, бойкие резюме/рецензии), которые содержат мало деталей, кроме маханья руками, как Apple знает лучше.

Что смешного в этом? Apple действительно знает лучше. Они просто предпочитают скрывать это знание. Это частично на их веб-сайте вместо того, чтобы давать вам всплывающие подсказки и установленную документацию. Те части, которые доступны там, далее в формате, который требует некоторой обработки конечным пользователем. Попытайте удачу в Apple, например: Daemons and Services Programming Guide . Вы можете и должны, конечно, перепроверить их на форумах пользователей (подготовьте большую солонку, чтобы иметь достаточное количество зерна). Или этот самый сайт или другие. Просто помните о предполагаемом уровне качества каждого источника.

Большинство запущенных и отображаемых в Activity Monitor процессов можно (принудительно) завершить. Как правило, это вполне безопасно делать в условиях тестирования, когда в фоновом режиме не открыто никакой важной работы или что-то в этом роде. (Применяются предостережения!) Таким образом, вы можете тестировать один за другим и эмпирически видеть, что происходит:

  • они возрождаются сразу или через какое-то время или только после перезагрузки?
  • что-то неожиданное не работает после того, как вы отключили процесс?

Если ничего неожиданного не произойдет, вы можете перейти к следующему шагу.

Там был отличный список известных процессов и их краткое объяснение под названием «Знай свои процессы Mac OS X». К сожалению, это исчезло, но все еще видно на archive.org: https://web.archive.org/web/20170222052540/http://triviaware.com/macprocess/all Это, конечно, означает, что он немного устарел для начала. с, но все еще более актуальный, чем большинство популярных сегодня поисковых систем. Поскольку вы находитесь в Йосемити, текущая ситуация вас не беспокоит.

Теперь ознакомьтесь с launchdи launchctl. Первый - это демон, который загружает всю "эту хрень" (ваши слова), а со вторым можно взаимодействовать с launchd и управлять им.

Видя, что уничтожение процесса не оказывает вредного воздействия на ваши нужды, вы можете дать указание системе отключить эту «службу». Вы можете использовать launchctlдля этого или любую из программ, доступных для этого с помощью графического интерфейса, например

Посмотрите на работу и попытайтесь понять, что она делает. Остановите работу и посмотрите, что произойдет. Затем отключите задание и посмотрите, что произойдет. Делайте паузы между ними и часто перезагружайтесь, чтобы убедиться, что вы не напортачили слишком много, что может понадобиться во время загрузки или только один раз.

Справиться с совершенно неожиданными последствиями может быть сложно, поскольку иногда приходится устанавливать действительно странные связи. Нет необходимости в Airplay? Снимите все флажки в графическом интерфейсе. Отключите все, что имеет в названии airplay. Легкий. После этого все работает как положено. За исключением того, что через некоторое время вы замечаете, что iTunes продолжает падать при запуске. iTunes тоже не нужен? Хороший. Все еще хотите использовать iTunes? Плохо, плохо. Очень жаль. Вернитесь к списку намеренно отключенных служб и включите их одну за другой; чтобы наконец узнать, что iTunes настаивает на SystemDaemon с именем com.apple.AirPlayXPCHelper. Ожидать неожидаемое.

Чтобы дать вам преимущество для вещей, которые считаются раздутыми: в сети есть много коллекций, которые пытаются выполнить то, что вы хотите. Следующее предназначено в качестве источника для чтения и анализа для вдохновения. Не просто применяйте их! Читайте документы для них! Выберите то, что кажется необходимым, один за другим. (Поскольку вы все равно должны документировать свои собственные выводы — почему бы не опубликовать их?)

Они не полностью применимы к каждой версии OS X или macOS, некоторые из них имеют разные версии, которые все еще находятся в сети. Но, похоже, нужно следить только за удаленными или вновь введенными демонами.

Минимальные системы, оптимизированные для аудио:

«Отключить кучу #$!@ в Sierra (версия 2.1):» https://gist.github.com/pwnsdx/d87b034c4c0210b988040ad2f85a68d3

Практическое руководство по защите macOS: https://github.com/drduh/macOS-Security-and-Privacy-Guide

Актуальный преемник osxlockdown: https://github.com/kristovatlas/osx-config-check

«Простой сценарий оболочки для устранения проблем с конфиденциальностью macOS и удаления в основном бесполезных вызовов macOS в Купертино»: https://github.com/karek314/macOS-home-call-drop

Здесь действительно применимы только небольшие порции, но все же некоторые уникальные элементы: https://gist.github.com/brandonb927/3195465

Также следует отметить «Выгрузка и отключение нежелательных агентов и демонов в OSX»: http://tech.masterofsql.com/os-x/unload-disable-unwanted-agents-daemons-os-x.html

Теперь пусть приходят отрицательные голоса. Надеюсь это поможет.

Превосходное практическое руководство, но мне кажется, что написать Linux проще, чем криминалистически вырезать навороты из MacOS 10.10. Скажем, я просто хочу отключить все элементы запуска *, связанные с iCloud, в 10.10: разве нет 5-минутного ответа на этот вопрос? В любом случае, я проработаю ваш список ресурсов и дам вам знать, что найду.
К сожалению, не за 5 мин. Отсутствие документации и несоответствия в именовании затрудняют это. Все предметы со словом «облако» в названии являются очевидными кандидатами, но Ubiquityтакже являются частью этой посылки. Поэтому сложно определить, что именно Apple (или вы) относите к iCloud.
Да за 5 минут: отключение раздражающих функций OSX Yosemite Я не пользуюсь постом в блоге от 'guy Calledseven', это чертовски великолепно!! Уменьшена моя «Сжатая память» в мониторе активности с ~ 2,5-3,4 ГБ до < 500-800 МБ !! Я опубликую ответ, как только решу часть диагностики.
Это впечатляет. Тем более, что это руководство охватывает лишь небольшую часть этих служб и демонов. (i) Само по себе облако состоит из гораздо большего количества частей. Чтобы отключить это.