Программный ресурс, контролирующий для каждого процесса в Linux

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

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

.

8
задан Josh Kelley 5 November 2009 в 16:14
поделиться

5 ответов

/usr/src/linux/Documentation/accounting/taskstats.txt

Taskstats - это интерфейс на основе сетевых ссылок для отправки по задачам и статистика по процессам от ядра до пользовательского пространства.

Taskstats была разработана для следующих преимуществ:

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

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

Это не отличает (например) дисковый ввод-вывод от сетевого ввода-вывода. Если это важно для вас, вы можете использовать библиотеку перехвата LD_PRELOAD , которая отслеживает операции с сокетами. Предполагая, что вы можете контролировать запуск программ, которые хотите наблюдать, и что они, конечно же, не будут трюкать за вашей спиной.

Я могу »

5
ответ дан 5 December 2019 в 19:01
поделиться

Взгляните на linux инструментарий трассировки (LTTng). Он вставляет точки трассировки в ядро ​​и выполняет некоторую пост-обработку для получения той статистики, о которой вы спрашиваете. Файлы трассировки становятся большими, если вы фиксируете все, но вы можете сохранить управляемость, если ограничите типы событий, которые вы активируете.

http://lttng.org для получения дополнительной информации ...

2
ответ дан 5 December 2019 в 19:01
поделиться

Относительно пропускной способности сети: Этот ответ суперпользователя описывает обработку / proc / net / tcp для сбора данных об использовании пропускной способности сети.

Я знаю, что iptables можно использовать для работы в сети бухгалтерский учет (см., например, статьи LWN , Linux.com или Shorewall )), но я не вижу практического способа сделать это на на основе процесса.

2
ответ дан 5 December 2019 в 19:01
поделиться

Чтение / proc - это, в конечном счете, единственный способ контролировать использование ЦП и памяти отдельными процессами без внедрения кода в ядро. Если вы посмотрите на top (1), вы увидите, что чтение большого количества файлов в / proc - это именно то, что он делает каждую секунду. Все инструменты и библиотеки пользовательского режима, которые получают такую ​​информацию, должны получать ее из /proc.

. Как и в случае использования пропускной способности сети, существует несколько подходов, которые более или менее сводятся к захвату всего входящего и исходящего сетевого трафика. коробки. Вы также можете подумать о написании специального модуля netfilter (iptables), который выполняет именно тот тип подсчета, который вам нужен, без накладных расходов на захват трафика.

0
ответ дан 5 December 2019 в 19:01
поделиться

Я только что наткнулся на это, когда искал ответы на то же самое. просто примечание - при использовании файловой системы / proc вам не нужно закрывать файл после каждого чтения. вы можете держать файл открытым, и каждый раз, когда вы будете читать, вы будете получать новую статистику ... так что у вас не должно быть накладных расходов на открытие и закрытие каждый раз, когда вы хотите получить статистику ... у меня это работает javascript на node.js, если вам нужен пример ...

0
ответ дан 5 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

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