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

Мы все испытали его - некоторую программу просят сделать что-то, что требует огромного объема памяти. Это покорно пытается выделить всю эту память, и система сразу начинает перегружаться, подкачивая бесконечно и становясь вялой или небыстро реагирующей.

Я последний раз испытал это на своем ноутбуке Ubuntu из-за сценария Matlab, пытающегося выделить смехотворно огромную матрицу. После ~5 + минуты перегрузки, я смог к Ctrl-F1 к консоли, и уничтожьте Matlab. У меня очень была бы некоторая горячая клавиша, которая дала бы мне контроль системы сразу и позволила бы мне уничтожать незаконный процесс; или, возможно, просто тихо откажитесь выделять такой большой буфер.

  1. Что самый быстрый путь состоит в том, чтобы восстановить управление системой Linux, которая стала небыстро реагирующей или чрезвычайно вялой из-за чрезмерного свопинга?

  2. Существует ли эффективный способ препятствовать тому, чтобы такой свопинг произошел во-первых, например, путем ограничения объема памяти, который процессу позволяют попытаться выделить?

19
задан 22.02.2011, 03:02

3 ответа

Нажмите Alt-SysRq-F для уничтожения процесса с помощью большую часть памяти:

  • Ключ SysRq обычно отображается на ключе Печати.
  • При использовании графического рабочего стола, Вы, возможно, должны были бы нажать Ctrl-Alt-SysRq-F в случае, если нажатие Alt-SysRq инициировало другое действие (например, программа снимка).
  • При использовании ноутбука, Вы, возможно, должны были бы нажать функциональную клавишу также.
  • Для получения дополнительной информации читайте статью Википедии.
12
ответ дан 07.12.2019, 10:20

Вы можете нажимать Ctrl-z для приостановки программы. Затем можно сделать kill %1 (или независимо от того, что число задания, или можно использовать PID).

Можно использовать ulimit управляйте, чтобы попытаться ограничить объем памяти, доступный процессу.

2
ответ дан 07.12.2019, 10:20

Было бы хорошо, если бы GUI имел горячую клавишу для отправки, SIGSTOP к любому приложению фокусируется!

Всегда существует классическое xkill команда (от xorg-x11-apps-7.4-14.fc14.src.rpm в моей системе). Я предполагаю, что не должно быть слишком трудно сделать клон, который отправляет SIGSTOP вместо того, чтобы уничтожить целевое окно.

0
ответ дан 07.12.2019, 10:20

Теги

Похожие вопросы