Online video hd

Смотреть жесткое видео

Официальный сайт goldsoftware 24/7/365

Смотреть видео бесплатно

exelens 22.07.2009 14:54

Есть вопрос!Измерить скорость работы в сети

Появилась задача, узнать какова скорость работы по сети.



Как грамотно это сделать? Возможно ли сделать это в консоли без ГУёв?



(Этот вопрос пришёл мне в почту.)


Тэги: вопрос сетка скорость
+ 4 -
Похожие Поделиться

m0nhawk 22.07.2009 15:31 #
+ 1 -
Вряд ли есть именно для измерения скорости, можно посмотреть bmon и iftop. Но придётся что-то качать. Как вариант ещё wget.
m0nhawk 22.07.2009 15:31 #
+ 1 -
Но всё-таки самый простой - спросить у провайдера :)
cppmm 22.07.2009 15:48 #
+ 2 -
Провайдеры нередко, скажем так, слегка кривят душой, отвечая на вопросы по поводу скорости. :)
m0nhawk 22.07.2009 15:49 #
+ 0 -
В договоре или тарифном плане обычно это должно быть.
cppmm 22.07.2009 15:58 #
+ 2 -
У прошлого прова в договоре было указано "До мегабита". Когда я пришёл к ним с распечаткой статистики, где явно было видно, что скорость в основном колебалась от 512кбит до ~700кбит, мне показали договор и объяснили, что "до мегабита" - это значит "от нуля до мегабита" в зависимости от нагрузки на канал. Если хочу мегабит, то предложили сменить тарифный план на предусматривающий скорость "Один мегабит" с ценой в два раза выше. Сменил прова из принципа.
У следующего прова, к которому подключился, чётко сказано было "Два мегабита". Сначала всё так и было, а потом скорость ухудшилась и не поднималась выше полутора тысяч килобит. К ним я тоже пришёл с распечаткой, после чего приехали техники, посмотрели, проверили и выяснили, что в моём подъезде повреждён телефонный кабель(а инет через ADSL). Кабель заменили и всё стало прекрасно.
Как говорится, доверяй (провайдеру), но проверяй. :)
zivot_je_cudo 22.07.2009 15:42 #
+ 0 -
Если речь оскорости интернета, то http://www.speedtest.net/ =)
Если лан, то вгет.
m0nhawk 22.07.2009 15:45 #
+ 0 -
Написано же -
без ГУёв
lwilis 22.07.2009 15:44 #
+ 1 -
time wget url:/путь/к/эталонному_файлу
файл обычно от 500К до 1500К
утилита time - покажет время, потраченное на операцию. Дальше арифметика.
assaron 22.07.2009 23:43 #
+ 0 -
wget и так пишет скорость вроде
cppmm 22.07.2009 15:47 #
+ 3 -
man ifstat
Утилита показывает текущую скорость передачи как входящих, так и исходящих потоков на любом интерфейсе. Запустив её, можно попробовать загрузить канал несколкими парралельными закачками чего-нибудь большого. Я обычно ставил несколько загрузок с kernel.org, и несколько с образами дисков каких-нибудь дистров. И скорость проверяю, и полезные вещи скачиваю. :)
evgenyl 22.07.2009 16:01 #
+ 0 -
А что именно вы подразумеваете под скорость работы в сети ?
пропускную способность пакетов, объема, латентность ?
evgenyl 22.07.2009 16:07 #
+ 1 -
Вот это можно почитать
Kraplax 22.07.2009 16:37 #
+ 5 -
Хоть я и приверженец Console-free идеологии, все же раз уж попросили (да и такая задача легче решается как раз в консоли), то вот решение:
  1. Ставим утилиту iperf:
    Для ArchLinux
    yaourt -S iperf
    pacman -S iperf

    Для Ubuntu/Debian:
    apt-get install iperf
    aptitude install iperf

    Для Mandriva:
    urpmi install iperf
    Для FreeBSD:
    cd /usr/ports/benchmarks/iperf
    make install clean

    Для CentOS:
    yum install iperf
    Для Windows:
    На официальной странице iperf для Windows можете найти прямую ссылку на утилиту iperf, которую желательно кинуть в папку, содержащуюся в переменной PATH (например, C:\WINDOWS)
  2. Запускаем на одной машине в сети iperf в режиме сервера:

    iperf -s -p 54321 -D
    где -s говорит о том, что iperf запускаем в режиме сервера;
    число после -p указывает на используемый для связи порт (по умолчанию используется порт 5001);
    параметр -D говорит о том, что iperf запускается в режиме демона
    В результате получим следующий вывод:
    ------------------------------------------------------------
    Server listening on TCP port 54321
    TCP window size: 65.3 KByte (default)
    ------------------------------------------------------------

    при этом терминал будет занят iperf, если опция -D не была указана. В таком случае результаты тестов будут выводиться в терминал по мере их поступления и обработки:
    iperf -s -p 54321
    ------------------------------------------------------------
    Server listening on TCP port 54321
    TCP window size: 8.00 KByte (default)
    ------------------------------------------------------------
    <1840> local 172.16.0.5 port 54321 connected with 172.16.0.1 port 56059
    < ID> Interval Transfer Bandwidth
    <1840> 0.0-10.1 sec 4.31 MBytes 3.59 Mbits/sec

    Если же сервер был запущен в режиме демона (опция -D), то процесс не будет занимать терминал, а только выдаст:
    Running Iperf Server as a daemon
    The Iperf daemon process ID : 5774
    естественно, у вас ID будет другим и всегда разным
  3. Запускаем на другой машине в сети iperf в режиме клиента:

    iperf -c server_ip -p 54321 -d
    где -c указывает на то, что iperf запущен в режиме клиента;
    число после -p устанавливает порт для связи (используем тот же порт, что и на сервере)
    параметр -d заставит iperf провести "двустороннюю" проверку производительности - скорость до сервера и скорость до клиента (можно убрать этот параметр, так как вряд ли он нужен для обычных пользователей);
    server_ip - IP адрес машины, на которой запущен iperf в режиме сервера.
  4. В результате получим примерно вот такой вывод:
    iperf -c 172.16.0.1 -d -p 54321
    ------------------------------------------------------------
    Server listening on TCP port 54321
    TCP window size: 8.00 KByte (default)
    ------------------------------------------------------------
    ------------------------------------------------------------
    Client connecting to 172.16.0.1, TCP port 54321
    TCP window size: 8.00 KByte (default)
    ------------------------------------------------------------
    <1824> local 172.16.0.5 port 2455 connected with 172.16.0.1 port 54321
    <1780> local 172.16.0.5 port 54321 connected with 172.16.0.1 port 60395
    < ID> Interval Transfer Bandwidth
    <1824> 0.0-10.1 sec 2.31 MBytes 1.93 Mbits/sec
    <1780> 0.0-10.1 sec 2.02 MBytes 1.68 Mbits/sec

    Это на стороне клиента в системе Windows при испольовании двустороннего теста.
Собственно, если вывод этой утилиты вам ничего не говорит, то попробуйте поиграться с параметрами, прочитав man iperf. Также есть другие утилиты для тестирования производительности сети (такие как ntop, netperf, Bandwidth Test Controller (BWCTL), thrulay и другие). Думаю, написал и так многовато, так что остальные утилиты разберете сами, либо, если нужен постоянный мониторинг, то советую поискать GUI приложения для повседневного использования.
cooler 22.07.2009 17:40 #
+ 1 -
Я подобное с исользованием netcat делал, но с подсчетом через iftop.
За iperf спасибо, засейвил себе. Меньше лишних действий.
m0nhawk 22.07.2009 17:52 #
+ 0 -
Чёрт, а ведь действительно быстрее…
exelens 22.07.2009 17:53 #
+ 0 -
Спасибо!!
warchief 22.07.2009 18:00 #
+ 0 -
или так:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
typedef unsigned long long ull;
int parseDevFile(const char * iface, ull *bRx, ull *pRx,
ull *bTx, ull *pTx)
{
FILE * fp = NULL;
char * line = NULL;
unsigned int len = 0;
fp = fopen("/proc/net/dev", "r");
if(fp==NULL)
{
return -1;
}
while(getline(&line,&len,fp)!= -1)
{
if(strstr(line,iface)!=NULL)
{
// following line must be corrected for each distro, due the difference in /proc/net/dev!
sscanf(strstr(line,":")+1,"%llu%llu%*u%*u%*u%*u%*u%*u%llu%llu",
bRx, pRx, bTx, pTx);
}
}
fclose(fp);
free(line);
return 0;
}

void dumpInterfaceUsage(const char * iface)
{
ull ifaceBRxOld=0, ifaceBTxOld=0, ifacePRxOld=0, ifacePTxOld=0;
ull ifaceBRxNew=0, ifaceBTxNew=0, ifacePRxNew=0, ifacePTxNew=0;
const int SLEEP_TIME = 2;
if(parseDevFile(iface,&ifaceBRxOld,&ifacePRxOld,&ifaceBTxOld,&ifacePTxOld)==-1) return;
//sleep(SLEEP_TIME);
while(1)
{
if(parseDevFile(iface,&ifaceBRxNew,&ifacePRxNew,&ifaceBTxNew,&ifacePTxNew)==-1) return;
printf("%s In: %8.2f kbyte/s %5llu P/s Out: %8.2f kbyte/s %5llu P/s\n", iface,
(ifaceBRxNew-ifaceBRxOld)/(SLEEP_TIME * 1024.0),
(ifacePRxNew-ifacePRxOld)/SLEEP_TIME,
(ifaceBTxNew-ifaceBTxOld)/(SLEEP_TIME * 1024.0),
(ifacePTxNew-ifacePTxOld)/SLEEP_TIME);
ifaceBRxOld=ifaceBRxNew; ifaceBTxOld=ifaceBTxNew;
ifacePRxOld=ifacePRxNew; ifacePTxOld=ifacePTxNew;
sleep(SLEEP_TIME);
}
}

int main(int argc, char **argv)
{
if(argc != 2)
{
printf("Usage: %s interfacename\n", argv<0>);
exit(1);
}
dumpInterfaceUsage(argv<1>);
return 0;
}

Kraplax 22.07.2009 20:07 #
+ 0 -
некультурно выкладывать куски кода простым текстом при наличии тега code (тем более с подсветкой). И зачем было каждую вторую строку делать пустой?
пофиксил, но недоволен.
Ну, а для тех кому надо - компилится это дело так:
сохраняете все это в файлик с расширением .c (например, performance_test.c) и компилите командой:
gcc performance_test.c -o perf_test
После чего можете запускать утилиту:

./perf_test eth0
или

./perf_test wlan0
После чего утилита будет непрерывно выводить в stdout по одной строке статистики:
wlan0 In: 0.00 kbyte/s 0 P/s Out: 0.00 kbyte/s 0 P/s
wlan0 In: 0.03 kbyte/s 0 P/s Out: 0.09 kbyte/s 0 P/s
wlan0 In: 0.03 kbyte/s 0 P/s Out: 0.09 kbyte/s 0 P/s
wlan0 In: 0.34 kbyte/s 4 P/s Out: 0.80 kbyte/s 4 P/s
wlan0 In: 0.03 kbyte/s 0 P/s Out: 0.09 kbyte/s 0 P/s
wlan0 In: 0.05 kbyte/s 1 P/s Out: 0.12 kbyte/s 1 P/s
wlan0 In: 0.03 kbyte/s 0 P/s Out: 0.09 kbyte/s 0 P/s
wlan0 In: 0.03 kbyte/s 0 P/s Out: 0.09 kbyte/s 0 P/s
...

Однако, это скорее монитор, чем действительно тестер "производительности" сети - он отобразит вам текущую скорость передачи в килобайтах и пакетах в нисходящем и восходящем потоках. Чтобы узнать пропускную способность нужно параллельно запустить передачу по сети какого-нибудь файла метров на 10-300 (в зависимости от ожидаемой пропускной способности сети). А потом, как уже писали, арифметика.
warchief 22.07.2009 20:55 #
+ 1 -
извини, первый комментарий здесь - кликал мышью быстрее чем думал, а функции редактирования комментариев не нашёл.
Kraplax 22.07.2009 23:43 #
+ 0 -
Функции редактирования комментариев недоступны пользователям. Для этого есть предпросмотр комментария, чтобы увидеть сразу как это будет выглядеть.
Craftuser 24.07.2009 03:39 #
+ 0 -
iftop и файлик с ближайшего сервака на закачку.

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн