SSH сервер всегда доступен под большой нагрузкой


10

Есть ли способ, чтобы мой SSH-сервер и все под ним (включая bash) всегда были доступны при большой нагрузке?

Может быть, это может быть какой-то критический путь, все в памяти , с выделенным процессором или что-то в этом роде.

Как я могу иметь всегда доступный сервер с минимальными затратами, чтобы исследовать, что происходит на моем сервере?


Вы спрашиваете о способе гарантировать, что вы можете войти через SSH, чтобы устранить неисправность / починить в противном случае систему, не отвечающую на запросы? Если так, то это ответ, который я хотел бы увидеть. Ранее я задавался вопросом, есть ли какой-то способ зарезервировать процент ресурсов ЦП / памяти для root таким же образом, как 5% дискового пространства зарезервировано для root при заполнении файловой системы ext2.
Энтони Геогеган

@AnthonyGeoghegan Да, это то, что я спрашиваю. И вот о чем я думаю, но я не уверен, есть ли способ сделать это (или как).
blue112,

Оглядываясь вокруг, я заметил, что похожий вопрос был задан несколько лет назад, но не получил никаких ответов. Здесь надеемся, что этот вопрос получит лучший ответ.
Энтони Геогеган

1
Вероятный ответ - нет. Тем не менее, есть вещи, которые вы можете сделать, которые помогут в удаленной диагностике проблем, вызывающих большую нагрузку, такие как настройка удаленного мониторинга системы (Scout, мониторинг сервера NewRelic) и удаленное ведение журнала syslog (PaperTrail, LogStash, rsyslog и т. Д.)
Creek

1
Наиболее распространенные «не отвечающие» проблемы, которые я видел, - это исчерпание файловых дескрипторов, pids и сокетов. Даже если бы у sshd был какой-то способ сохранить пул зарезервированных процессов, bash не сможет выполнить ветвление, поэтому вы получите бесполезную оболочку. Ваш лучший шанс - это оболочка со встроенными средствами отладки, но если у вас нет файловых дескрипторов, у вас все равно будут проблемы с диагностикой.
Крис Мендес

Ответы:


4

Чтобы полностью использовать систему, она предоставляет всем сервисам одинаковые ресурсы, и ядро ​​будет пытаться поддерживать их работу с одинаковым приоритетом. Вы можете установить уровень приоритета процесса sshd на самый высокий уровень. (Как хорошо идет вниз, приоритет повышается)

Смотрите здесь: /server/355342/prioritise-ssh-logins-nice

Это не решит вашу проблему с памятью. Вы должны будете использовать cgroups, чтобы назначить процессу sshd собственную зарезервированную память для обработки этого.

Ограничить использование памяти для одного процесса Linux

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.