Это своего рода обычное явление, когда после SSHing к серверу (или даже открытия терминала на моем Mac) баннер входа в систему печатается немедленно, но для появления приглашения оболочки требуется ~ 10 секунд в минуту. После этого производительность в порядке, и задержка в сети не является чем-то необычным.
Это не похоже на вычислительно сложную, интенсивную память или IO-задачу. Что это делает со всеми этими миллиардами циклов ЦП?
ssh
performance
shell
jacobbaer
источник
источник
ssh -v -v -v
иur_shell -x
может быть разумным шагом отладки..bash_history
?Ответы:
Здесь может происходить несколько вещей. Вы можете найти большинство ответов в руководстве по вашей оболочке, но они обычно невероятно длинные и косые, так что ...
Скорее всего, ваша проблема сводится к одной из нескольких вещей.
Если в вашем профиле или bashrc есть дорогие вещи, рассмотрите возможность их обрезки.
Если в вашем профиле или bashrc используется обратный поиск DNS (для установки приглашения или чего-то еще), исправьте DNS или используйте вместо него имя хоста.
Оболочки открывают много файлов, между прочим, во время инициализации. Если загрузка системы высока, она часто будет отображаться здесь.
Если баннер является предварительной аутентификацией, это может быть также медленная аутентификация (pam, LDAP и т. Д.).
Впрочем, может быть, ничего из этого. Удивительное количество вещей происходит прямо перед отображением подсказки!
источник
Вероятно, это либо ожидание DNS, либо попытка аутентификации через LDAP или что-то подобное.
Попробуйте добавить
UseDNS no
в / etc / ssh / sshd_configЕсли это также происходит при локальном входе в систему, проверьте, работают ли настроенные вами серверы LDAP или DNS медленные или не отвечают.
источник
Одна возможность (покрытая другими ответами) состоит в том, что процесс установки самого сеанса SSH - это то, где время потеряно.
Другой альтернативой является то, что ваши сценарии запуска оболочки, запущенные на удаленном компьютере после установления сеанса SSH, содержат что-то, что занимает много времени (возможно, при попытке получить доступ к неработающему сетевому подключению). Вы можете отладить эту вторую возможность следующим образом:
Временно добавьте следующее в начало вашего
~/.bash_profile
:В
set -x
очереди на некоторые отладки для каждой команды оболочки выполняется. ВPS4
контроля переменных , как представляется , что отладка - именно в этом случае мы будем использовать ,date
чтобы добавить метки.Затем вы можете проанализировать временные метки выходных данных отладки, чтобы увидеть, какие команды в ваших сценариях запуска занимают слишком много времени.
источник
Если это сервер Ubuntu, настройки входа в систему по умолчанию проверяют, обновляются ли какие-либо пакеты при каждом запуске оболочки входа. Если списки пакетов отсутствуют в дисковом кеше, это может занять секунду или две даже на быстром бездействующем рабочем столе.
Чтобы сгенерировать это сообщение «требуется перезагрузка», он должен был проверить, что работающее в данный момент ядро не является ядром по умолчанию, установленным в данный момент. (т.е. было ядро, и я еще не перезагружался.) Он также напечатает количество доступных обновлений безопасности, если они есть.
Я думаю, что это главное замедление входа в Ubuntu, которое было введено недавно.
Если не так, то ваш
~/.bash_profile
/~/.bashrc
может быть проблема.Вы пытались войти на сервер от себя (
ssh localhost
)? Или сразу во второй раз заходишь? (Чтобы увидеть, намного ли быстрее, когда материал кэшируется.)источник
В большинстве случаев это тайм-аут запроса DNS.
Причина. Сервер пытается выполнить обратный поиск DNS с использованием IP-адреса клиента и не получает ответа. Если A подключается к B, B пытается преобразовать IP-адрес A в имя.
Обходной путь: введите IP-адрес и имя клиента в файл hosts на сервере.
Решение: сделать все хосты известными DNS-серверу.
источник