Ubuntu 20.04 не убивает процесс, который внезапно использует всю оперативную память, что приводит к падению системы?

Я использую Ubuntu 20. 04, теперь, если я не ошибаюсь, в Ubuntu есть встроенная функция, которая убивает процесс, если внезапно использует всю оперативную память для остановки падения системы, я видел, как это происходило (например, он убивает любые питоновые скрипты, которые внезапно используют всю системную память или что-то в этом роде, и говорит, что они убиты в терминале)

Проблема в том, что во многих случаях этот механизм не работает, и это приводит к падению моей системы (это питоновый скрипт, который использует всю память), Я делаю машинный материал обучения, и я не могу предсказать, сколько из моих скриптов может использовать, и я ожидал Ubuntu просто в основном убить приложение, когда оно вдруг использует всю системную память, но это не работает, и моя система рушится (все зависает, без движения мыши или что-нибудь, но с помощью REISUB я могу перезагрузить систему)

иногда его даже не внезапный всплеск в использовании оперативной памяти, скрипт просто продолжает выделять больше оперативной памяти и оперативной памяти, и когда он достигает предела моя система в основном замирает и Ubuntu не останавливает его! Я думал, что для этой ситуации существует защитный механизм

так что мой вопрос :

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

edit : можно ли в любом случае сказать операционной системе убить процесс питона в ситуациях вне памяти, независимо от идентификатора процесса? имея в виду убить любой процесс с именем питона, когда он находится вне памяти.

edit2 :

вывод свободного -h :

              total        used        free      shared  buff/cache   available
Mem:           15Gi       4.1Gi       218Mi       469Mi        11Gi        10Gi
Swap:         2.0Gi       946Mi       1.1Gi

edit3:

out put из sysctl vm.swappiness

vm.swappiness = 60
0
задан 22 September 2020 в 17:37

1 ответ

Давайте увеличим ваш /swapfile с 2G до 4G (может быть, больше позже, если этого потребует ваш скрипт Python)...

Примечание: Неправильное использование dd Команда может привести к потере данных. Предложите скопировать/вставить.

В терминале...

sudo swapoff -a           # turn off swap
sudo rm -i /swapfile      # remove old /swapfile

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096

sudo chmod 600 /swapfile  # set proper file protections
sudo mkswap /swapfile     # init /swapfile
sudo swapon /swapfile     # turn on swap
free -h                   # confirm 16G RAM and 4G swap

Подтвердите эту строку /swapfile в конце /etc/fstab... и не подтвердите никаких других строк "подкачки"...

Для редактирования , используйте sudo -H gedit /etc/fstab или sudo pico /etc/fstab

/swapfile    none    swap    sw      0   0

reboot                    # reboot and verify operation
2
ответ дан 22 September 2020 в 14:31

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

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