Я использовал свой MBP (с 16 ГБ ОЗУ) как обычно, и у меня появилось это всплывающее окно:
Ваша система исчерпала память приложения.
Чтобы избежать проблем с вашим компьютером, закройте все приложения, которые вы не используете.
Я, очевидно, закрыл несколько, которые мог, но это не помогло.
После проверки памяти, похоже, задача ядра съела 7 ГБ, а использовалась подкачка 22,36 ГБ из общего объема 23 ГБ (что, очевидно, имело место). Однако у меня все еще есть 20 ГБ свободного места на моем SDD.
Монитор активности не сильно помог, пока мой OS X направлялся на уничтожение.
Моя top
статистика до того, как моё ядро зависнет:
Processes: 344 total, 2 running, 5 stuck, 337 sleeping, 2580 threads 19:23:56
Load Avg: 1.56, 1.62, 2.09 CPU usage: 3.51% user, 8.47% sys, 88.1% idle SharedLibs: 46M resident, 0B data, 6572K linkedit. MemRegions: 757970 total, 2139M resident, 56M private, 907M shared.
PhysMem: 9410M used (6198M wired), 556M unused. VM: 1155G vsize, 1311M framework vsize, 112872658(320) swapins, 122668389(0) swapouts. Networks: packets: 299419263/363G in, 142126838/14G out.
Disks: 58970173/1079G read, 20012389/1120G written.
В конце моя OS X зависла, и мне пришлось сделать полный сброс, восстановить SDD в режиме восстановления и исправить после этого (восстановление потерянной работы, исправление конфликтов приложений, проверка папки lost + found, отсутствие вкладок Chrome / Terminal, головная боль и т. Д.). ).
У меня вопрос, как я могу проверить интенсивное использование памяти задачей ядра или как правильно справиться с такой ситуацией? Я пытался взять образец с Activity Monitor, но он серого цвета.
Мои подробности о MBR: 2,3 ГГц Intel Core i7 (конец 2013 г.) с 16 ГБ оперативной памяти. OS X: 10.9.5
zprint -t
(Лев) илиsudo zprint -t
(Горный Лев и позже).Ответы:
Есть много вещей, которые идут не так с высоким использованием задач ядра. Обычно это связано с неисправным или тяжелым процессом, который перегружает системные ресурсы (такие как индексирование хранилища, запуск виртуальных машин, слишком много вкладок в веб-браузере или некоторые другие фоновые процессы).
Вот некоторые методы, которые помогают исследовать проблемы использования ядра OS X:
Основные методы
Console.app
« Все сообщения » и проверьте, происходит ли что-то необычное в данный момент.Используйте Activity Monitor для считывания системной памяти и определения объема используемой ЦП, ОЗУ и диска.
В качестве альтернативы запустить
top
в терминале и удерживайте , Spaceчтобы обновить - легче найти проблему (причина swapins / swapouts / диски ?).Запустите
sudo fs_usage
в терминале, чтобы в режиме реального времени сообщать о системных вызовах и ошибках страниц, связанных с деятельностью файловой системы (я думаю, что это лучший вариант из всех других). Затем нажмите Control- Cчтобы остановить это.Действие: рассмотрите возможность уничтожения приложений, которые часто появляются в списке, но вы ими не пользуетесь.
Узнайте больше на: Как отладить неуправляемый процесс «kernel_task»?
Беги
sudo syscallbypid.d
(илиsyscallbyproc.d
), немного подожди, нажми Control- C. Теперь проверьте, какой процесс сгенерировал больше системных вызовов за это время (последний столбец), и, если вы его узнаете, рассмотрите возможность его уничтожения. Если нет, Google и узнать больше об этом.Продвинутые методы
Используйте
sysdiagnose
команду (можно запустить, нажав Shift- Control- ⌥- ⌘- .(точка), чтобы быстро собрать общесистемную диагностическую информацию, полезную при расследовании проблем с системной памятью / производительностью (будет отображаться/var/tmp
) вами или ребятами Apple. Во время анализа старайтесь не делать что-нибудь, когда сделано - рассмотрите распаковку сгенерированного файла и проанализируйте журналы.Смотрите: Как вы получаете системные диагностические файлы от OS X?
Запустите,
footprint
чтобы собрать подробную информацию о памяти на уровне типа для каждой области VM и поменять местами байты:Старая версия:
Используйте
spindump
для профилирования всей системы, он будет генерировать/tmp/spindump.txt
файл (включая ядро и его расширения).Используйте
vm_stat
для отображения статистики виртуальной памяти. НапримерИспользуйте
zprint
для проверки информации об использовании ядра, это возможно:Это покажет наиболее бесполезные зоны ядра.
Используйте
newproc.d
для отслеживания новых процессов по мере их выполненияcreatbyproc.d
для файлов:Примечание. В более новой версии OS X (10.11 или выше) это может не работать, если включена защита целостности (проверьте с помощью
csrutil status
).Try
sar
- системный репортер активности, который может выбирать и сообщать различные совокупные статистические счетчики, поддерживаемые операционной системой.Для получения более полезных инструментов отладки проверьте наличие сценариев dtrace (
grep dtrace /usr/bin/*
). Если вам известен сбойный процесс, вызвавший проблему, вы можете использовать егоdtruss
для отладки.действия
Вот несколько советов, которые могут помочь вам с проблемами операционной системы.
Освободите немного неактивной памяти. Чтобы сделать это, сначала нужно очистить кэш и принудительно очистить кэш диска:
Его функция в основном состоит в том, чтобы завершить все ожидающие операции ввода-вывода, которые используют дисковый кеш, а затем освободить весь занятый дисковый кеш, поэтому он должен освободить дисковое пространство, чтобы облегчить подкачку и выгрузку из основной памяти. Он безопасен в использовании, так как не влияет на анонимную память, выделенную через malloc, vm_allocate и т. Д.
Используйте некоторые сторонние приложения, чтобы очистить часть используемой памяти, такую как iBoostUp , SystemPal и т. Д.
Вы также можете отключить временный прожектор:
И рассмотрите другие услуги по:
Закройте свой веб-браузер и проверьте, помогает ли это. Например, использование Chrome очень изобретательно, особенно когда в фоновом режиме выполняется некоторая внешняя обработка (например, Javascript) или рекламные анимации постоянно воспроизводят контент.
источник
kernel_task
загрузки памяти и процессора.У меня была очень похожая проблема после замены моего ЖК-экрана на iMac в конце 2012 года. Вентилятор работал на высоких оборотах и имел высокую загрузку процессора Kernel_task. Я сузил его до датчика температуры, вы должны перейти от старого ЖК-экрана к новому экрану замены. Если вы забудете это сделать, то будут затронуты скорость процессора и Kernel_task, что замедляет работу вашей системы.
источник