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

10

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

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

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

blue112
источник
Вы спрашиваете о способе гарантировать, что вы можете войти через 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

DM.
источник