Система зависает при использовании слишком большого количества памяти в Python [дубликат]

Я использую свой компьютер для научного программирования. Он имеет здоровые 8 ГБ оперативной памяти и 12 ГБ пространства подкачки. Часто, когда мои задачи становятся все более масштабными, я превышаю весь объем доступной оперативной памяти. Вместо сбоя (что было бы предпочтительнее), Ubuntu начинает загружать все в своп, включая Unity и любые открытые терминалы. Если я не успеваю вовремя поймать убегающую программу, я ничего не могу сделать, кроме как ждать - требуется 4-5 минут, чтобы переключиться на командную строку, например, Ctrl-Alt-F2, где я могу убить нарушающий процесс.

Поскольку моя собственная глупость выходит за рамки этого форума, как я могу предотвратить крах Ubuntu через thrashing, когда я использую всю доступную память от одной программы-нарушителя?

Домашний эксперимент*!

Откройте терминал, запустите python и, если у вас установлен numpy, попробуйте сделать следующее:

>>> import numpy
>>> [numpy.zeros((10**4, 10**4)) for _ in xrange(50)]

* Предупреждение: возможны негативные последствия, следите за процессом через iotop или top, чтобы вовремя его убить. Если нет, то после перезагрузки.

34
задан 7 February 2017 в 16:46

0 ответов

Другие вопросы по тегам:

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