Ошибка SSH Broken Pipe при запуске ресурсоемкой программы на сервере (даже с ограниченной загруженностью ЦП)

Вопрос или проблема

Я запускаю крупные языковые модели на Orange Pi 5 Pro с Ubuntu 22 сервер (клиент работает на Ubuntu 24). У него 8 ядер, и после короткого времени работы LLM последовательным образом обрывается соединение SSH. Когда я ограничиваю процессор с помощью cpulimit --limit=100, соединение остается открытым, но если я использую значение 200, оно разрывается. У устройства 8 ядер, поэтому –limit 200 должно использовать только 2 ядра, оставляя 6 ядер для других процессов, что достаточно для SSH и других системных процессов. Добавление значений keep alive, как рекомендовано в других темах “сломанная труба”, не помогло. Есть ли у кого-нибудь предложения о том, как это исправить, или почему это происходит?

Ответ или решение

Проблема разрыва соединения SSH при выполнении ресурсоемких программ на сервере

Введение

Проблема разрыва соединения SSH, возникающая при запуске ресурсоемких программ, может вызывать значительные неудобства при работе с удалёнными серверами. В вашем случае, использование большое языковых моделей на Orange Pi 5 Pro под управлением Ubuntu 22 Server приводит к разрывам соединения при достижении определённых уровней нагрузки на ЦП. Данная статья будет подробно рассматривать данную проблему, исследовать возможные причины и предлагать решения.

Описание проблемы

Вы упомянули, что при запуске больших языковых моделей соединение SSH начинает прерываться через короткие промежутки времени. Увеличение загрузки ЦП до 200% через утилиту cpulimit, которая управляет использованием процессоров, приводит к разрыву соединения. Однако установка лимита в 100% позволяет поддерживать соединение. Это может быть связано с рядом факторов, включая сетевые настройки, настройки SSH и нагрузки на систему.

Возможные причины разрыва соединения SSH

  1. Сетевые проблемы:

    • Перегрузка сети: При высокой нагрузке на сервер может происходить задержка пакетов, что ведет к тайм-аутам соединения.
    • Нестабильное интернет-соединение: Убедитесь, что ваше клиентское устройство имеет стабильное подключение к интернету.
  2. Настройки SSH:

    • Значения KeepAlive: Значения ClientAliveInterval и ClientAliveCountMax в файле конфигурации SSH (обычно /etc/ssh/sshd_config) могут быть недостаточными. Попробуйте увеличить значения этих параметров:
      ClientAliveInterval 60
      ClientAliveCountMax 3
    • TCPKeepAlive: Проверьте, включена ли опция TCPKeepAlive, которая может помочь в поддержании активного соединения.
  3. Системные нагрузки:

    • Высокие задержки и использование ресурсов могут привести к деградации производительности, что влияет на работу SSH. Когда вы запускаете модель с более чем 100% использованием ЦП, это может вызвать процессорные недостатки, влияющие на работу SSH-сервера.
  4. Настройки утилизации ресурсов:

    • В случае использования нагрузочного ограничения через cpulimit, стоит учесть, что это может не всегда корректно ограничивать все процессы. Некоторые фоновые процессы могли бы занять ресурсы, вызывая разрывы SSH.

Рекомендации по устранению неполадок

  1. Оптимизация настроек SSH:

    • Примените предложенные выше значения ClientAliveInterval и ClientAliveCountMax.
    • Попробуйте изменить настройки /etc/ssh/sshd_config для более частой проверки соединений.
  2. Мониторинг сетевой активности:

    • Используйте инструменты мониторинга сети, такие как iftop или nload, чтобы отслеживать нагрузку на сеть и уберечь от перегрузок.
  3. Использование Tmux или Screen:

    • Попробуйте использовать такие инструменты, как tmux или screen, которые сохраняют ваши сессии, позволяя вам повторно подключаться после разрывов соединения без потери данных.
  4. Настройка системных ресурсов:

    • Попробуйте уменьшить использование процессов, когда запускаете LLM, чтобы лучше совместить ресурсы сервера. Используйте профилирование, чтобы определить узкие места в производительности.

Заключение

Разрывы соединения SSH при выполнении ресурсоемких задач могут возникать по множеству причин, включая сетевые проблемы и неправильные настройки. Настройте параметры SSH, оптимизируйте использование ресурсов и мониторьте сетевую активность, чтобы улучшить стабильность соединения. Если вышеизложенные рекомендации не помогут, возможно, стоит рассмотреть использование сервера с большей вычислительной мощностью или исследовать другие варианты виртуализации.

Оцените материал
Добавить комментарий

Капча загружается...