Назад | Перейти на главную страницу

Как проверить скорость соединения сервера?

Каковы методы проверки скорости подключения сервера (в моем случае виртуальный сервер Ubuntu @ Slicehost)? Бонусные баллы за одну команду liner bash.

Одним из лучших инструментов командной строки для проверки доступной пропускной способности является iperf. Однако вам понадобится еще один блок с известным быстрым соединением, чтобы запустить тест. Мне неизвестны общедоступные серверы iperf.

Взгляни на этот вопрос для техники использования dd над netcat и обратите внимание на открытие, что дисковый ввод-вывод был ограничивающим фактором в локальной сети с конкретным задействованным оборудованием. Через Интернет и с более быстрым оборудованием ваш пробег может отличаться. Используя /dev/zero как источник и /dev/null в качестве места назначения фактор дискового ввода-вывода будет исключен, как указано в комментариях.

целевая система:
nc -l -p 9000 | pv | дд из = / dev / null

исходная система:
dd if = / dev / zero | pv | NC 9000 -q 10

Бегать netserver на одном компьютере и netperf -h other.server.com -l 30 по другому; увидеть официальный Netperf site для получения дополнительных сведений, источника и двоичного файла Windows (в большинстве систем портов / пакетов * nix есть netperf). Примечание: результаты будут ограничены самым медленным соединением между ними, а порт 12865 должен быть открыт на стороне сервера.

Это мой собственный способ узнать время самого простого HTTP-запроса 1/1 на моих серверах. Измените www.foo.com на ServerName и 192.168.1.15 на IP-адрес HTTP-сервера (используйте IP-адрес, так как с настоящим именем вам будет добавлено время поиска DNS).

time printf 'GET / HTTP/1.1\nHost:www.foo.com\n\n' |nc -w 10 -q 10 192.168.1.15 80 1>/dev/null

Я обычно делаю это на очень простом виртуальном хосте по умолчанию со статической HTML-страницей, чтобы получить базовое время отклика (без cgi или php, даже без управления сессией, mod_rewrite или auth.

Для отслеживания в реальном времени я использую плагины Nagios, результаты статуса apache (очень полезно для bash one linners, а также wityh q = auto) и иногда автобенч (на основе httperf).

Я считаю, что проще всего использовать iftop.

На сервере @ slicehost запустить

sudo iftop

Затем начните загрузку большого файла с помощью wget в другом окне SSH.

На странице руководства iftop:

Основная часть дисплея отображает для каждой пары хостов скорость, с которой данные были отправлены и получены за предыдущие 2, 10 и 40 секундные интервалы. Направление потока данных указано стрелками, <= и =>. Например,

   foo.example.com  =>  bar.example.com      1Kb  500b   100b
                    <=                       2Mb    2Mb    2Mb

и т.д...