iftop прослушивает последние 40 секунд трафика, если вызывается только один раз или когда вызывается без параметров. слушает истекший период. Опрос, который он выполняет во время работы, не отражает истинного использования сервера с течением времени.
Отслеживание трафика с помощью iftop также создает нагрузку на систему, которая может быть более или менее значительной в зависимости от объема трафика, так как сетевые данные должны передаваться и обрабатываться API pcap.
Несмотря на то, что это отличный инструмент для отладки сетевых проблем и, в частности, информации о конкретных транзитных потоках, это не так уж и хороший инструмент для долгосрочного использования.
Для трафика или полосы пропускания я предлагаю использовать SNMP в более профессиональной среде или для более простого использования ifconfig.
Я бы подробно рассказал гораздо больше, однако я нашел предыдущий пост, в котором о мониторинге трафика и скорости рассказывается более подробно, чем я думал.
Как мне обработать вывод ifconfig, чтобы определить скорость моего соединения?
В качестве заключительной детали, ничего против iftop, ЕСЛИ вы это понимаете
1) просто измеряет мгновенную скорость каждый раз, когда вы запускаете скрипт (каждый 5 минут?)
2) не следует использовать в системах с высокой нагрузкой
Возникла похожая проблема при запуске tmux даже после установки libevent -2.1.so.7. У меня сработало создание символической ссылки установленного файла в каталог /lib64/.
$sudo ln -s /usr/local/lib/libevent-2.1.so.7.0.0 /lib/x86_64-linux-gnu/libevent-2.1.so.7
$ldd tmux
linux-vdso.so.1 (0x00007fff6f9fe000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f675b5eb000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f675b3c1000)
libevent-2.1.so.7 => /lib/x86_64-linux-gnu/libevent-2.1.so.7 (0x00007f675b16b000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f675af50000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f675ab5f000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f675a940000)
/lib64/ld-linux-x86-64.so.2 (0x00007f675ba9f000)
Как упоминалось в Почему gcc не может найти libevent при сборке tmux из исходников? , опции with-libevent=dir
нет. Поэтому при настройке Tmux сделайте следующее:
DIR="$HOME/path/to/libevent"
./configure CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/.libs"
Обратите внимание, что это .libs , а не lib. Я предполагаю, что это изменение в libevent 2.1.
Это заставит его пройти проверку конфигурации и скомпилировать. Тем не менее, вы еще не вышли из леса. Если вы сделаете только это, то при попытке запустить tmux
вы получите эту ошибку:
error while loading shared libraries: libevent-2.1.so.6: cannot open shared object file: No such file or directory
В этом сообщении в блоге есть решение -добавить путь .libs
к LD_LIBRARY_PATH
, вот так:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/path/to/libevent/.libs
Теперь, чтобы это «закрепилось» при следующем входе в систему, вставьте приведенную выше строку в свой файл ~/.bashrc
. Если вы просто запустите команду в своем терминале, она будет действовать только для этого сеанса.
Вы можете использоватьpkg-config
сделать это легко.
Сначала постройте libevent
. В этом примере мы будем устанавливать от libevent
до/tmp/libevent
-вам не нужно создавать это каталог вручную, он будет создан автоматически во время сборки обработать. Вам не нужно быть пользователем root для запускаmake install
:
$./autogen.sh
$./configure --prefix=/tmp/libevent
$ make
$ make install
Теперь у вас должно быть/tmp/libevent/lib/pkgconfig/libevent.pc
:
$ cat /tmp/libevent/lib/pkgconfig/libevent.pc
#libevent pkg-config source file
prefix=/tmp/libevent
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libevent
Description: libevent is an asynchronous notification event loop library
Version: 2.2.0-alpha-dev
Requires:
Conflicts:
Libs: -L${libdir} -levent
Libs.private:
Cflags: -I${includedir}
Обратите внимание, что prefix
указывает на каталог, который мы передали в качестве аргумента. до ./configure
.
Перед сборкой tmux добавьте /tmp/libevent/lib/pkgconfig
вPKG_CONFIG_PATH
:
$ export PKG_CONFIG_PATH=/tmp/libevent/lib/pkgconfig:$PKG_CONFIG_PATH
$ pkg-config --cflags --libs libevent
-I/tmp/libevent/include -L/tmp/libevent/lib -levent
А потом собрать tmux
нормально:
$./autogen.sh
$./configure
$ make
Обратите внимание, что для того, чтобы фактически начать tmux
с вашим пользовательским libevent
необходимо правильно установить LD_LIBRARY_PATH
:
$ ldd./tmux
linux-vdso.so.1 (0x00007ffce3d92000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f2f1d77e000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f2f1d527000)
libevent-2.2.so.1 => not found
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2f1d30b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2f1cf42000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2f1cd3d000)
/lib64/ld-linux-x86-64.so.2 (0x000055cdf0697000)
$./tmux
./tmux: error while loading shared libraries: libevent-2.2.so.1: cannot open shared object file: No such file or directory
$ LD_LIBRARY_PATH=/tmp/libevent/lib./tmux -V
tmux master
РЕДАКТИРОВАТЬ:
Чтобы обойти настройку LD_LIBRARY_PATH
, вы можете установить rpath
при построенииtmux
:
$./configure LDFLAGS="-Wl,-rpath=/tmp/libevent/lib"
$ make
$ ldd./tmux
linux-vdso.so.1 (0x00007ffcc6de1000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fbe121a4000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fbe11f4c000)
libevent-2.2.so.1 => /tmp/libevent/lib/libevent-2.2.so.1 (0x00007fbe11cf7000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fbe11adc000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbe11712000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbe1150e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbe112f1000)
/lib64/ld-linux-x86-64.so.2 (0x000055f057ef4000)
$./tmux -V
tmux master