com.apple.iconServicesAgent использует много оперативной памяти в 10.9

10

Я выполнил новую установку OS X 10.9, и теперь процесс com.apple.iconServicesAgentиспользует> 300 МБ ОЗУ, это довольно много. Этот процесс использует второй по величине объем памяти всех процессов после задачи ядра.

Google говорит мне, что у других людей тоже есть эта проблема, но я пока не нашел решения.

Есть ли способ уменьшить потребление оперативной памяти этим процессом?

hiddenbit
источник
что, если я убью тему ...
Есть ли давление на память в этой системе? Части ОС предназначены для использования большой части ОЗУ, когда в этом нет необходимости ускорять процесс. Вы бы разместили снимок экрана монитора активности внизу вкладки Память? Рассматривая физическую память / использованную / нагрузку и объем кэш-памяти приложения / файла и проводной памяти, необходимо диагностировать любые проблемы использования ОЗУ.
bmike

Ответы:

11

наблюдения

Вы можете наблюдать естественные взлеты и падения в использовании.

Вы не должны рассматривать использование как проблему.

Предыстория: об иконных сервисах

Чтобы получить представление о том, что делают сервисы значков (демон com.apple.IconServices, процессы com.apple.IconServicesAgent и связанные файлы), выполните следующую команду в окне терминала, которое может быть шириной 257 символов или шире:

sudo fs_usage -w -f filesys com.apple.IconServices | grep write

Тогда в Finder:

  1. просмотреть папку, которая не была просмотрена с момента запуска Mac
  2. просматривать
  3. вернитесь в ту же папку.

Вы должны найти это:

  • первоначальный просмотр вызывает записи (в кеш)
  • Второй и последующие просмотры не вызывают дополнительного кэширования, пока содержимое папки не изменяется.

Чтобы прервать команду, Control-C

Для нефильтрованного взгляда на вещи:

sudo fs_usage -w -f filesys com.apple.IconServices

Преимущества иконных услуг в Mavericks

Мне кажется, что подход Apple к кэшированию значков особенно полезен для приложений / процессов, где основные функции включают чтение метаданных из различных типов файловой системы. Приложения, такие как Finder, процессы, такие как Dock, и так далее.

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

Для стека недавних приложений в Dock: возможно, имена, значки и даты / время как основные элементы в подмножестве.

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

Дополнительные мысли

В HFS Plus (Mac OS Extended), со ссылкой на устаревшую документацию, у нас есть ориентированное на производительность B-дерево горячих файлов , файл атрибутов и так далее. Со всем остальным, что было сделано с этой файловой системой, теперь она чрезмерно расширена .

Преимущества сервисов значков, связанные с производительностью, должны быть относительно независимыми от файловой системы . Это приятно. Я ожидаю, что преимущества будут реализованы пользователями ZFS на Mavericks и так далее…

Грэм Перрин
источник
Когда iconservicesagent занимает более 20 ГБ, я бы сказал, что это проблема. Это легко повторить на всех моих Mac. У меня есть каталог фильмов на внешнем диске. Я открываю папку в Finder и iconservicesagent начинает подниматься в небо. Вскоре после этого Finder переходит в режим «не отвечает». Все эти фильмы имеют свои эскизы в качестве постера фильма. Если бы я должен был удалить все пользовательские вставленные миниатюры, iconservicesagent вернется к своему нормальному поведению.
sprotsman
4

Похоже, что-то связано со службой, которая рендерит иконки в Finder, когда моя максимальная загрузка процессора не выполнялась, иконки не рендерились в Finder.

Я принудительно вышел из процесса и снова открыл Finder, и все снова выглядело хорошо.

ChrisChinchilla
источник
Принуждение com.apple.IconServicesAgentк выходу может быть маскировкой или просто отсрочкой основной проблемы. Проблема не в агенте, а в данных, которые агент пытается обработать .
Грэм Перрин
2
Я очень много об этом @GrahamPerrin. Жаловаться на то, что iconservicesagent делает слишком много, буквально «стреляет в мессенджера» - системные службы предоставляют данные приложениям, которые работают. Если вы выйдете из всех приложений и перезагрузите ОС - посмотрите, каково распределение оперативной памяти com.apple.IconServicesAgent, а затем вы сможете наблюдать за его ростом, когда системе и другим приложениям будет предложено нарисовать значки на экране. После того, как вы собрали начальное выделение ОЗУ, вы можете отслеживать вещи, чтобы увидеть, есть ли нехватка памяти, из-за которой этот кэш начинает уменьшаться.
bmike
1
Я думаю, что убивать процесс - это нормально, если он никому не причиняет вреда и делает пользователя счастливее. Вероятно, он просто не высвобождает ресурсы достаточно быстро (или вообще) после некоторой интенсивной работы. Для любопытных есть также gist.github.com/walesmd/7315613 - я бы не советовал следовать этим инструкциям, если только агент не всегда занимает много памяти.
Николай