3

У меня такая странная ситуация возникает время от времени.

Моя система OS X (Snow Leopard) просто перестанет делать что-либо "новое". Он не может запускать новые процессы (например, новое приложение или новый процесс bash), которые он не загружал ранее. Вещи, которые уже запущены, могут быть в состоянии начать снова... но если это не из кеша (может быть?) он просто сидит там висел

В конце концов вся система деградирует, приложение за приложением, процесс за процессом, до такой степени, что ничего не отвечает (включая Finder, UI и т.д.), И мне приходится делать полный цикл питания.

Есть идеи? Когда это происходит, я даже не могу запустить Activity Monitor или top если они еще не запущены, поэтому трудно определить.

3 ответа3

1

Что говорят журнал консоли, системный журнал и журнал ядра? Еще лучше использовать sudo syslog | more чтобы выгрузить всю вашу базу данных сообщений системного журнала (предупреждение: много выходных данных) и искать любые сообщения примерно в то время, когда возникла проблема.

Также посмотрите в /Library /Logs /DiagnosticReports на наличие сбоев или спин-дампов с момента возникновения проблемы.

Подумайте об обновлении своего Вопроса с помощью этого вывода или ссылки на него на Pastebin.com или gist.github.com. Может быть, мы можем помочь вам понять это.

У вас не бывает ни "Мозы", ни "Руки прочь!""установлен, а вы? Недавно я помог решить некоторые проблемы с похожими симптомами, которые сводились к неправильному поведению этих пакетов:

Получение консольного сообщения: ipc_kmsg_copyout_header: не может увеличить пространство ipc пользователя. Здесь есть гуру ядра Mac OS X?

Некоторые Mac-приложения часто аварийно завершают работу, с "__THE_SYSTEM_HAS_NO_PORT_SETS_AVAILABLE__" в обратном следе

1

Это очень похоже на проблему, с которой я столкнулся, когда мне помог Spiff: Получение сообщения консоли: ipc_kmsg_copyout_header: невозможно увеличить пространство ipc пользователя.Здесь есть гуру ядра Mac OS X?

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

#!/usr/bin/env bash
# port_profile.sh [output_file_path]
#   use top to profile port usage for processes every 10 minutes (600s)
args=("$@")
sleep_time=600
if [ "$#" -eq 0 ]
    then
        outfile="port_profile.txt"
    else
        outfile="$@"
fi
(while true; do
    data=`top -o ports -stats ports,command,pid,msgsent,msgrecv,user,uid, -l 1 | grep -v 'CPU\|Disks\|LoadAvg\|Load Avg\|MemRegions\|Networks\|PhysMem\|Procs\|Processes\|SharedLibs\|Threads\|Time\|VirtMem\|VM\|Swap\|Purgeable'`
    while read -r line; do
        echo -e "$line"
    done <<< "$data"
    echo -e ""
    sleep $sleep_time
done) >> $outfile &
0

Я обнаружил вывод команды "lsof" в текстовый файл, чтобы вывести список открытых файлов и сокетов всех запущенных процессов, что приложение открывало множество межпроцессных сокетов и ОС достигла своего предела:

lsof > ~/lsof.txt

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .