2016-03-18 1 views
1

У меня есть простой вопрос.Как убить процесс Python (Anaconda на окнах), если ОЗУ близко к насыщению?

Я часто выполняю сложные вычисления в пандах с большими наборами данных. Иногда python продолжает использовать RAM больше, вплоть до того, что все насыщено, и мой компьютер в основном падает. Я использую дистрибутив Anaconda на машине для Windows.

Можно ли установить порог (скажем, 98%), так что если использование ОЗУ превышает этот порог, то ядро ​​должно быть перезапущено или процесс должен быть убит?

ответ

1

В системах Unix относительно нет (https://docs.python.org/2/library/resource.html#resource.setrlimit). Однако для систем Windows не существует внутреннего способа python ограничения объема памяти. Затем вам придется полагаться на Windows API. Насколько я могу судить по this answer, вам было бы лучше создать Job object и связать его с процессом python. Затем вы должны использовать JOB_OBJECT_LIMIT_JOB_MEMORY, чтобы ограничить память процесса. Или, возможно, вы можете избежать использования SetProcessWorkingSetSize.

Смежные вопросы