Linux: просмотр использования полосы пропускания для каждого процесса с помощью инструмента Nethogs


Предыдущая |

У меня есть сервер Red Hat Enterprise Linux 6.x / 7.x / 8.x. Как узнать и сгруппировать использование пропускной способности сети по процессам в операционных системах Linux? Как узнать, какие программы используют пропускную способность сети в операционных системах Linux? Как я могу увидеть использование полосы пропускания для каждого PID, команды и пользователя в операционных системах Linux?
Вам нужно использовать команду nethogs. Это небольшой инструмент «net top». Инструмент, напоминающий топ для сетевого трафика. На домашней странице проекта nethogs:

Tutorial details
Difficulty level Easy
Root privileges Yes
Requirements nethogs on RHEL/CentOS
Debian/Ubuntu/Arch
OpenSUSE/Apline Linux
Est. reading time 4 minutes
 

 

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

Linux: просмотр использования полосы пропускания для каждого процесса с помощью команды Nethogs

Инструмент nethogs работает только в операционных системах Linux. Давайте посмотрим, как установить и использовать инструмент Nethogs в операционных системах Linux, чтобы увидеть использование полосы пропускания для каждого процесса.

Установите nethogs на Debian или Ubuntu Linux

Type the following apt-get command/apt-get command:
$ sudo apt-get install nethogs

[sudo] password for vivek: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  nethogs
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 29.9 kB of archives.
After this operation, 86.0 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 nethogs amd64 0.8.5-2build2 [29.9 kB]
Fetched 29.9 kB in 1s (36.4 kB/s)  
Selecting previously unselected package nethogs.
(Reading database ... 345956 files and directories currently installed.)
Preparing to unpack .../nethogs_0.8.5-2build2_amd64.deb ...
Unpacking nethogs (0.8.5-2build2) ...
Setting up nethogs (0.8.5-2build2) ...
Processing triggers for man-db (2.9.1-1) ...

Установите nethogs на RHEL, CentOS или Fedora Linux

Сначала включить EPEL repo и введите следующее yum command to install nethogs package:
# yum install nethogs

Loaded plugins: product-id, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
rhel-x86_64-server-6                          | 1.5 kB     00:00     
rhel-x86_64-server-6/primary                  |  13 MB     00:01     
rhel-x86_64-server-6                                     10127/10127
rhel-x86_64-server-6-debuginfo                | 1.3 kB     00:00     
rhel-x86_64-server-6-debuginfo/primary        | 776 kB     00:00     
rhel-x86_64-server-6-debuginfo                             4240/4240
rhel-x86_64-server-optional-6                 | 1.5 kB     00:00     
rhel-x86_64-server-optional-6-debuginfo       | 1.3 kB     00:00     
rhel-x86_64-server-supplementary-6            | 1.5 kB     00:00     
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package nethogs.x86_64 0:0.8.0-1.el6 will be installed
--> Finished Dependency ResolutionDependencies Resolved=====================================================================
 Package        Arch          Version              Repository   Size
=====================================================================
Installing:
 nethogs        x86_64        0.8.0-1.el6          epel         28 kTransaction Summary
=====================================================================
Install       1 Package(s)Total download size: 28 k
Installed size: 53 k
Is this ok [y/N]: y
Downloading Packages:
nethogs-0.8.0-1.el6.x86_64.rpm                |  28 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : nethogs-0.8.0-1.el6.x86_64                        1/1 
  Verifying  : nethogs-0.8.0-1.el6.x86_64                        1/1 Installed:
  nethogs.x86_64 0:0.8.0-1.el6                                       Complete!

Пользователь Fedora Linux может ввести команду dnf следующим образом:
$ sudo dnf install nethogs

Как установить nethogs на Arch Linux

Try the pacman command:
$ sudo pacman -S nethogs

Установите nethogs на OpenSuse Linux

We use the zypper command:
# zypper install nethogs

Установка nethogs на Alpine Linux

Type the apk command:
# apk add nethogs

Как мне использовать команду nethogs в Linux, чтобы увидеть использование полосы пропускания?

Синтаксис:

nethogs
nethogs eth1
nethogs [option] eth0 eth1
nethogs [option] eth0 eth1 ppp0
sudo /usr/sbin/nethogs eth0

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

Fig.01: nethogs in action

Fig.01: nethogs in action

Еще один вывод одного из моих личных серверов RHEL:

Fig.02: Linux See Bandwidth Usage Per Process With Nethogs Tool On My Centos/Rhel box

Fig.02: Nethogs in action on my centos/rhel box

Клавиатурные сочетания

Используйте следующие интерактивные элементы управления, когда nethogs запущен:

  1. m : Cycle between display modes (kb/s, kb, b, mb)
  2. r : Sort by received.
  3. s : Sort by sent.
  4. q : Quit and return to the shell prompt.

Другие варианты

       -d     delay for refresh rate.
       -h     display available commands usage.
       -p     sniff in promiscious mode (not recommended).
       -t     tracemode.
       -V     prints Version info.

Замечание об ошибке «Не удалось создать сокет при установке локального IP - вы root?»

Если вы получите сообщение об ошибке следующего содержания:

creating socket failed while establishing local IP – are you root?

Убедитесь, что вы используете последнюю версию nethogs и запускаете ее от имени пользователя root:
$ sudo nethogs eth1

nethogs-qt – Qt-based GUI

Не любите CLI? Попробуйте использовать инструмент с графическим интерфейсом. Вот как установить nethogs-qt на рабочий стол Ubuntu 16.04 / 18.04 LTS:
$ sudo apt-get install g++ make qt5-default qt5-qmake git libpcap-dev
$ git clone https://github.com/qtproject/qtcharts.git
$ cd qtcharts
$ qmake
$ make
$ sudo make install
$ wget http://slist.lilotux.net/linux/nethogs-qt/nethogs-qt-0.0.4.tgz
$ tar zxvf nethogs-qt-0.0.4.tgz
$ cd nethogs-qt-0.0.4
$ qmake
$ make
$ sudo ./nethogs-qt
$ sudo ./nethogs-qt

Check out related