Как я могу отслеживать использование сетевых операций ввода-вывода для каждого процесса в Linux?


27

Такие известные инструменты, как iftop / iptraf, отображают сетевой ввод / вывод для каждого интерфейса и для каждого соединения. Есть ли способ увидеть статистику сетевого ввода-вывода для каждого процесса?


Ответы:


31

Nethogs, похоже, будет делать то, что вы хотите.

РЕДАКТИРОВАТЬ: мне нужно было установить ncurses-devel, libpcap и libpcap-devel для сборки.


@yag нет необходимости добавлять "РЕДАКТИРОВАТЬ" к сообщению. Мы уже можем видеть историю того, что изменилось.
Чепанг

@Tshepang Я просмотрел ваши изменения, я сохранил обновленную ссылку, которую вы сделали, но я сохранил текст редактирования, поскольку для меня это добавило ценность, как и ваше редактирование.
yagmoth555 - GoFundMe Monica

@ yagmoth555 Я имею в виду, зачем оставлять «РЕДАКТИРОВАТЬ» в посте? У нас есть история, чтобы показать, что было отредактировано, поэтому нет необходимости упоминать, что «текст, который следует, является редактированием».
Чепанг

@Tshepang О, проверь свои правки, тогда ты по ошибке удалил всю строку, поэтому я
перередактировал,

@ yagmoth555 это было преднамеренно, и я оставил Комментарий, который объясняет почему
tshepang

4

Чтобы узнать, какие соединения связаны с каждым процессом, используйте lsof. Например:

lsof | grep TCP

Это даст вам список соединений, например:

bash    10887 luke    3u     IPv4 44638801      0t0      TCP littleyerry.example.com:55212->barista.example.com:ldap (ESTABLISHED)
bash    10913 luke    3u     IPv4 44638905      0t0      TCP littleyerry.example.com:55216->barista.example.com:ldap (ESTABLISHED)
ssh     10935 luke    3u     IPv4 44639001      0t0      TCP littleyerry.example.com:55219->barista.example.com:ldap (ESTABLISHED)
ssh     10935 luke    4u     IPv4 44639008      0t0      TCP littleyerry.example.com:59459->launchpad.example.com:ssh (ESTABLISHED)
bash    10938 luke    3u     IPv4 44639107      0t0      TCP littleyerry.example.com:55221->barista.example.com:ldap (ESTABLISHED)

Оттуда вы сможете узнать о каждом соединении индивидуально, используя инструменты, которые вы упомянули (iftop, iptraf). Вы можете создать небольшой скрипт для агрегирования конкретных данных, которые вы ищете.


3
lsof -niTCPэквивалентно, но намного быстрее, и lsof -niTCP -sTCP:ESTABLISHEDпоказывает текущие соединения.
мяу
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.