Co może powodować powolną sesję ssh? [Zamknięte]

46

Ssh na zdalnym hoście, ale wydajność terminala jest niska. Symbole, które wpisuję, nie są wyświetlane natychmiast, ale z pewnym opóźnieniem. Czasami dwa symbole są wyświetlane jednocześnie po opóźnieniu.

Lexsys
źródło
Mosh jest dobrym zamiennikiem ssh, aby zapobiec temu problemowi: mosh.mit.edu
Steven C. Howell
6
serwer ssh ... dlaczego to zostało zamknięte? to oczywiście problem z serwerem. Oczywiście niektóre odpowiedzi tutaj są oparte na opiniach, ale pytanie powinno być w porządku.
j0h
5
Dlaczego to pytanie jest zamknięte? W moim przypadku było to po stronie serwera - zamknięty port UDP 67/68. W ogólnym obrazie Vultr włączono DHCP, próbowano ciągle odnawiać adres IP pubu, ale został zablokowany przez CSF. Pozwalając tym portom na rozwiązanie tego problemu, szybki SSH (i inne usługi sieciowe) ponownie. Uważaj na to, jeśli używasz tego lub innych domyślnych / podobnych obrazów VPS.
dhaupin,
5
Jest to wyraźnie (powszechny) problem z siecią. Uważam, że nie ma powodu, aby go zamykać i zdecydowanie nie jest to temat. Nawet (szczególnie), gdy problem może mieć wiele przyczyn, które są trudne do zidentyfikowania.
mivk

Odpowiedzi:

17

Duże opóźnienia to kolejna przyczyna niskiej wydajności ssh. Bardzo polecam użycie mtr jako lepszego zamiennika traceroute. Powinien być w stanie dać ci pojęcie, gdzie mogą wystąpić problemy z siecią.

David Pashley
źródło
13

Wyłączenie przekazywania X11, jeśli go nie potrzebujesz (ssh -x) i włączenie kompresji (ssh -C) może również przyspieszyć sesję.

Drzewiasty
źródło
9

Mogę wymyślić dwie możliwe przyczyny:

  1. Utrata pakietu w połączeniu
  2. Wysokie obciążenie serwera.
Shoan
źródło
3

Próbowałem zmierzyć wydajność sieci, wkrótce odkryłem, że terminal jest w porządku. Co się stało?

Mamy równoważenie obciążenia między routerem dwóch kanałów internetowych. Czasami kieruje mój ruch ssh przez wan1, a czasem przez wan2. Zaproponowałem, że coś jest nie tak z tylko jednym kanałem. Zmierzyłem więc wydajność sieci za pomocą mtr (świetne narzędzie!) Dla dwóch kanałów osobno.

Tak! wan2 ma 21 przeskoków z 110 ms, a wan1 ma 15 z tylko 21 ms! problemem jest opóźnienie wan2.

Lexsys
źródło
3

Użyj Compression i CompressionLevel z 9. To powinno trochę pomóc. Możesz skonfigurować te parametry w / etc / ssh / ssh_config. Ale jeśli rzeczywista sieć jest bardzo słaba, te sztuczki nie przyniosą wiele dobrego.

Saurabh Barjatiya
źródło
2

Najbardziej oczywistą przyczyną tego zachowania jest łącze, które jest nasycone lub odrzuca pakiety. Ile masz przeskoków ze stacji roboczej na maszynę, na której wysyłasz? Czy przeanalizowałeś traceroute, jeśli dotyczy?

Jan Jungnickel
źródło
2

Jeśli używasz OpenSSH na długiej rurze (duża przepustowość + duże opóźnienie), upewnij się, że używasz co najmniej wersji 4.7 po obu stronach, ponieważ zawiera poprawki, dzięki którym OpenSSH używa większego rozmiaru okna 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.

Może to być ważne, jeśli chcesz wykorzystać połączenie z pełnym potencjałem, ponieważ w przeciwnym razie nadawca może poczekać na zaległości, zanim będzie mógł kontynuować wysyłanie.

knweiss
źródło
1

Jak już powiedzieli inni, może to wynikać z opóźnień, utraty sieci, powolnego serwera.
Czasem widzisz 2 znaki tego samego typu, ponieważ nowoczesny stos TCP używa algorytmu o nazwie Naggle .

promień
źródło
1
Algorytm Nagle jest zawsze wyłączony w aplikacjach interaktywnych, takich jak telnet i SSH
LapTop006
1
Nie masz wystarczających informacji, aby powiedzieć „zawsze”. Nie wiemy, jakiego klienta / serwera ssh używa. Nie wiemy, na jakim systemie operacyjnym działa. itp. W przypadku niektórych systemów operacyjnych ustawienie poziomu jądra może mieć wpływ na ustawienie TCP_NODELAY na poziomie aplikacji.
promień
1

Może to być także próba SSH Brute Force, która dławi twoje połączenie. Za każdym razem, gdy moja sesja działa wolno, sprawdzam logi, a w wielu przypadkach ktoś próbuje hasła jak szalone.

raupach
źródło
1

Może to powodować źle skonfigurowany DNS. Serwer zareaguje dobrze po zalogowaniu, a przesyłanie i pobieranie plików będzie dość szybkie, ale logowanie SSH będzie wolne.

ServerChecker
źródło
1
Odkryłem, że mogę upuścić wpis IP w / etc / hosts dla serwera, który ma powolne logowanie SSH i zwykle przyspiesza początkowe połączenie. Ale prawdziwą poprawką jest prawidłowe działanie DNS.
ServerChecker
1

Jedną rzeczą, na którą należy spojrzeć, jest po prostu pamięć serwera. Uruchomiłem maszynę Wirtualną Ubuntu z 256 MB pamięci, a SSH był naprawdę powolny. Podwojenie tego do 512 Mb rozwiązało problem.

GateKiller
źródło