Mac OS X: Что использует мою 'активную' память?

Я использую недавний MacBook Pro с 8 ГБ RAM и после нескольких часов использования его на работе, я замечаю объем 'активного' роста памяти и роста.

Каждый раз, когда я перезагружаю свой Mac, все выглядит хорошо, и он едва использует любую RAM. Но после нескольких часов это похоже на это:

Screenshot

Как Вы видите, в этом случае это - приблизительно 4,3 ГБ.

Будучи разработчиком, я знаю, что 'активная память' является объемом памяти, который в настоящее время используется путем выполнения процессов. Таким образом, первая вещь, которую я сделал, выходила из всех приложений и уничтожала все процессы, которые, кажется, не принадлежат Mac OS X.

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

Теперь я задаюсь вопросом, что на самом деле держится за память? top и Монитор Действия не сообщает ни о каких процессах с использованием верхней памяти.

Какие-либо идеи?

Спасибо!


Обновление 1:

Благодаря ответу Doug Harris я сделал этот снимок экрана. Это показывает использование активной памяти 2,55 ГБ в масштабе всей системы, но только использование памяти на 1,55 ГБ который ps команда вычисляет.

enter image description here

Я не уверен, где остальной части 2,55 ГБ не стало или где она выделяется. Мне установили Инструменты, но так как это действительно происходит по промежутку нескольких часов, трудно использовать Инструменты. Это чувствует себя подобно утечке памяти где-нибудь в ОС. Возможно, драйвер (хотя у меня нет расширений ядра установленными - сверенный kextstat).

Лично я думаю, что было бы интересно смочь видеть "больше" о состоянии управления памятью. В соответствии с Linux существует некоторая информация под доступным "/proc", afaik.

7
задан 13.02.2011, 12:49

3 ответа

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

Используя ps и другие инструменты командной строки, можно развернуть глубже в это.

Во-первых, используйте опции для ps ограничить, что показывают просто резидентной памяти и названию команды. -m виды производятся использованием памяти, -a шоу процессы всех пользователей, -x выставочные процессы, не связанные с терминалом (т.е. большинство приложений Mac).

$ ps -axm -o "rss,comm" 

Вот первые несколько строк, которые я вижу:

   RSS COMM
210256 /Applications/Firefox.app/Contents/MacOS/firefox-bin
158276 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
155360 /Applications/iTunes.app/Contents/MacOS/iTunes

Именно никакой шок для меня, который это наверху (и Chrome обрабатывают показанный, не является только одним из набора). Столбец RSS выражается как 1 024-байтовые блоки. Таким образом, iTunes использует приблизительно 151,7 МБ.

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

Представьте в виде строки вместе набор больше для наблюдения суммы всех процессов:

$ ps -axm -o "rss,comm" | awk 'BEGIN { s=0;}; {s=s+$1;}; END { printf("%.2f GB\n", (s/1024.0/1024));}'

Вывод, который я вижу, который является 2.44 GB, не точно, что я вижу Активную память в Мониторе Действия, но достаточно близко что я могу использовать PS для добираний до сути относительно этого.

Можно добавить вместе просто те процессы с помощью больше чем 100 МБ:

$ ps -axm -o "rss,comm" | awk 'BEGIN { c=0;s=0;}; ($1 > 100000) {c=c+1;s=s+$1;}; END { printf("%.2f GB from %d processes\n", (s/1024.0/1024),c);}'

0.98 GB from 8 processes

Я не сказал Вам точно, что использует память Вашего Mac, но эти инструменты помогут Вам обнаружить.

4
ответ дан 07.12.2019, 15:07

Это кажется, что один из системных процессов пропускает память (или что, или растущие числа системных процессов выполняются по некоторым причинам). Можно проверить это непосредственно в Монитор Действия путем переключения всплывающего меню в панель инструментов от Моих Процессов до Всех Процессов, затем сортировки по столбцу Real Mem. Ищите процессы с помощью большого количества реальной памяти и/или большого количества экземпляров того же имени процесса. Это не решит проблему, но должно, по крайней мере, дать Вам общее представление, куда она прибывает из.

0
ответ дан 07.12.2019, 15:07

человек-k DTrace. Те инструменты - те, которые решат это. Goodluck

1
ответ дан 07.12.2019, 15:07

Теги

Похожие вопросы