Я вижу странное поведение потоков в моем Mac (Yosemite 10.10.4). Количество потоков увеличивается, а затем снова уменьшается. Иногда он остается чрезвычайно высоким, что превышает maxproc и приводит к тому, что fork: Resource temporarily unavailable сообщениям даже после увеличения его до 2048.

Учитывая, что потоки учитываются в maxproc , я бы хотел отслеживать, откуда идет этот процесс .

top , htop и glances предлагают только снимки, но мне нужен временный журнал создания и уничтожения потоков , включая владение и родительские права , для точного определения проблемы.

Есть идеи?

РЕДАКТИРОВАТЬ 1: убрал мою ссылку на Google Chrome в качестве потенциального подозреваемого, чтобы вопрос был сосредоточен на истории потоков или бухгалтерской книге.

2 ответа2

1

Я смог получить некоторое представление благодаря инструменту execsnoop . Описание со страницы руководства:

execsnoop печатает детали новых процессов по мере их выполнения. Такие детали, как UID, PID и список аргументов распечатаны.

Пример вывода:

[raul@~/bitbar$] sudo execsnoop -v
STRTIME                UID    PID   PPID ARGS
2016 Jan 14 17:56:09     0      1      0 launchd
2016 Jan 14 17:56:09   501  90311      1 influxd
2016 Jan 14 17:56:16   501  90312    321 kcc
2016 Jan 14 17:56:16     0      1      0 launchd
2016 Jan 14 17:56:16     0  90313      1 kcm
2016 Jan 14 17:56:19     0      1      0 launchd
2016 Jan 14 17:56:19   501  90314      1 influxd

execsnoop использует DTrace, и я нашел этот отличный пост с некоторыми другими скриптами / инструментами: http://dtrace.org/blogs/brendan/2011/10/10/top-10-dtrace-scripts-for-mac-os-x /.

В ядрах Mac OS X (Darwin) и * nix потоки представлены как процессы, и поэтому они учитываются в пределах ulimit и sysctl .

-2

от mac: fork: Ресурс временно недоступен

решить, ссылаясь на папку, в которой находится скрипт или утилита.

например: из папки вам нужно запустить скрипт или утилиту:

/usr/local/opt/dart/libexec/bin/pub global активировать stagehand

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