Назад | Перейти на главную страницу

Дай мне мою KILL-силу, когда что-то пойдет не так

У нас это было несколько раз. Внезапно наш производственный сервер не отвечает, потому что процесс находится в бесконечном цикле, или сервер MySQL перестает обслуживать новые запросы, потому что один запрос блокирует все ...

Мы подключаемся к серверу по SSH и используем ps aux или top найти виновного, или mytop или SHOW FULL PROCESSLIST в MySQL, чтобы найти идентификатор процесса, вызывающего нарушение, и kill Это. Затем, конечно, мы пытаемся воссоздать ситуацию на тестовом сервере и исправить ошибку.

Но иногда сервер так хорошо вешает свой ps aux / top / mytop / SHOW FULL PROCESSLIST не пройдет - заблокированы даже админы.

Как лучше всего гарантировать, что администратор всегда может получить доступ к серверу и отключить нарушающие процессы или запросы (как в Linux, так и в MySQL)?

Я проверил приятно 1), но постоянное открытое соединение с nice -20 кажется немного чрезмерным и трудным для работы (не говоря уже о том, что это опасно для root).

Мы используем серверы Dell, на которых установлена ​​сетевая карта удаленного доступа (DRAC), которая позволяет нам получать доступ к серверу по внешнему каналу через ssh или веб-браузер. Мы можем перейти на экран консоли или выключить и снова включить сервер. Большинство крупных производителей серверов поддерживают похожие устройства.

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

Похоже, у вас есть проблемы с проблемными приложениями. Почему у вас есть приложения, которые заходят в бесконечные циклы, и запросы MySQL, которые истощают ресурсы вашего сервера?

Думаю, мой ответ был недостаточно хорош, и кто-то почувствовал необходимость его удалить.

монит или бог, упреждайте захват, устанавливая пределы. Если вы используете виртуальное железо, а не голое железо, назначьте все, кроме одного ядра, вашему процессу и сохраните одно ядро ​​для доступа к консоли. KVM over IP иногда позволяет вводить комбинацию клавиш на консоли. Если сетевая активность делает это, выключите eth0, пока все не успокоится, подключитесь к eth1.

Модуль pam_limits.so - отличный инструмент для ограничения памяти, открытия файлов и т. Д. хороший приоритет для пользователей и групп.

rpm -ql pam | grep limits
man limits.conf
less /etc/security/limits.conf

Может быть SLURM может быть ответом. Это диспетчер ресурсов QoS для кластерных систем на базе Linux.