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

Что может вызвать медленную сессию ssh?

Я использую ssh на удаленном хосте, но производительность терминала низкая. Набираемые мною символы отображаются не сразу, а с некоторой задержкой. Иногда после задержки одновременно отображаются два символа.

Высокая задержка - еще одна причина низкой производительности ssh. Я настоятельно рекомендую использовать mtr как лучшую замену traceroute. Он должен дать вам некоторое представление о том, где могут возникнуть проблемы с сетью.

Отключение пересылки X11, если она вам не нужна (ssh -x) и включение сжатия (ssh -C) также могут ускорить ваш сеанс.

Я могу думать о двух возможных причинах:

  1. Потеря пакетов при соединении
  2. Высокая нагрузка на сервер.

Я попытался измерить производительность сети и вскоре обнаружил, что с терминалом все в порядке. Что случилось?

У нас есть балансировка нагрузки между двумя интернет-каналами роутера. Иногда он направляет мой ssh-трафик через wan1, а иногда через wan2. Я предположил, что что-то не так только с одним каналом. Поэтому я измерил производительность сети с помощью mtr (отличный инструмент!) Для двух каналов отдельно.

Да! wan2 имеет 21 переход по 110 мс, а wan1 - 15 с 21 мс! Задержка wan2 - это проблема.

Используйте Compression и CompressionLevel равное 9. Это должно немного помочь. Вы можете настроить эти параметры в / etc / ssh / ssh_config. Но если реальная сеть очень плохая, эти уловки не принесут пользы.

Наиболее очевидной причиной такого поведения является переполнение канала или отбрасывание пакетов. Сколько у вас переходов от вашей рабочей станции к машине, на которую вы подключаетесь по ssh? Вы проанализировали трассировку, если применимо?

Если вы используете OpenSSH на длинном толстом канале (высокая пропускная способность + высокая задержка), убедитесь, что вы используете по крайней мере версию 4.7 с обеих сторон, потому что она содержит исправления, позволяющие OpenSSH использовать больший размер окна TCP.

 * The SSH channel window size has been increased, and both ssh(1)
   sshd(8) now send window updates more aggressively. These improves
   performance on high-BDP (Bandwidth Delay Product) networks.

Это может быть важно, если вы хотите использовать соединение в полной мере, потому что в противном случае отправителю, возможно, придется ждать подтверждения, прежде чем он сможет продолжить отправку.

Как уже говорили другие, это может происходить из-за задержки, потери в вашей сети, медленного сервера.
Иногда вы видите 2 символа одного типа, потому что современный стек TCP использует алгоритм, называемый Нагл.

Это также может быть попытка SSH Brute Force, которая ограничивает ваше соединение. Каждый раз, когда мой сеанс работает медленно, я проверяю журналы, и во многих случаях кто-то пытается ввести пароли как сумасшедший.

Причиной этого может быть неправильно настроенный DNS. Сервер будет нормально реагировать после входа в систему и довольно быстро загружать и скачивать файлы, но вход по SSH будет медленным.

Одна вещь, на которую стоит обратить внимание, - это просто серверная память. У меня была виртуальная машина Ubuntu с 256 МБ памяти, и SSH работал очень медленно. Удвоение этого объема до 512 МБ решило проблему.