Как я могу предотвратить сбой системы или ее непригодность из-за высокой загрузки ОЗУ?

Иногда, когда я использую Lubuntu 17.10 - полностью обновлено, мое использование ОЗУ достигает 100%, и система становится непригодной, если мне «повезло», я могу перемещать мышь около 1 пикселя за 10 секунд ... Это делает ее практически невозможно сделать что-либо, даже выключив приложения. Затем я вынужден использовать кнопку питания на моем ноутбуке.

Я использую macbook pro retina в конце 2013 года, с почти свежей установкой Lubuntu 17.10.

До сих пор это произошло в то время как у меня есть spyder3 open, и я загрузил слишком большие файлы. Это также произошло, когда я щелкнул эту ссылку в firefox (WARNING: может произойти сбой) http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/SNA_TABLE1. Я даже закрыл вкладку, прежде чем нанести 100% -ую пользу, но она просто продолжалась до 100% и разбилась. Я заметил только потому, что закрыл вкладку и увидел использование RAM в spyder3 (у меня не было никаких скриптов python3).

Есть ли способ предотвратить это? Возможно, убедитесь, что операционная система может использовать только определенный объем оперативной памяти?

7
задан 13 January 2018 в 02:50

12 ответов

Вероятно, ваша проблема вызвана системой «перехватывания» - одновременным перемещением многих страниц памяти и обратно с места подкачки, а также отсутствием времени для выполнения реальных процессов.

Если вы хотите, чтобы процессы, используйте слишком много памяти для уничтожения, а не для того, чтобы ваша система работала медленно, вы можете отключить своп. Запуск sudo swapoff -a достигнет этого до перезагрузки; чтобы отключить своп навсегда, вам нужно отредактировать /etc/fstab, чтобы удалить раздел swapfile / swap, удалив или закомментировав строку с помощью swap в третьем столбце. Например, мой /etc/fstab выглядит примерно так:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fdedeca9-dafe-1a05-0866-7502fda1a7ea /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0

Чтобы отключить swap, я бы прокомментировал последнюю строку (помещая хэш # в начале строки) затем перезагрузитесь. Убедитесь, что вы не изменяете какой-либо из остальных файлов, иначе вы можете сделать вашу систему неспособной к загрузке.

Предостережение: если вы отключите подкачку и не имеете достаточной физической памяти для базовых системных служб , убийца OOM может решить убить одного из них и привести к сбою в работе системы или стать непригодным для использования (в этом вопросе говорится, что вы хотите избежать).

3
ответ дан 22 May 2018 в 15:34

Вероятно, ваша проблема вызвана системой «перехватывания» - одновременным перемещением многих страниц памяти и обратно с места подкачки, а также отсутствием времени для выполнения реальных процессов.

Если вы хотите, чтобы процессы, используйте слишком много памяти для уничтожения, а не для того, чтобы ваша система работала медленно, вы можете отключить своп. Запуск sudo swapoff -a достигнет этого до перезагрузки; чтобы отключить своп навсегда, вам нужно отредактировать /etc/fstab, чтобы удалить раздел swapfile / swap, удалив или закомментировав строку с помощью swap в третьем столбце. Например, мой /etc/fstab выглядит примерно так:

# <file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=fdedeca9-dafe-1a05-0866-7502fda1a7ea /boot ext2 defaults 0 2 /dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0

Чтобы отключить swap, я бы прокомментировал последнюю строку (помещая хэш # в начале строки) затем перезагрузитесь. Убедитесь, что вы не изменяете какой-либо из остальных файлов, иначе вы можете сделать вашу систему неспособной к загрузке.

Предостережение: если вы отключите подкачку и не имеете достаточной физической памяти для базовых системных служб , убийца OOM может решить убить одного из них и привести к сбою в работе системы или стать непригодным для использования (в этом вопросе говорится, что вы хотите избежать).

3
ответ дан 17 July 2018 в 23:14

Вероятно, ваша проблема вызвана системой «перехватывания» - одновременным перемещением многих страниц памяти и обратно с места подкачки, а также отсутствием времени для выполнения реальных процессов.

Если вы хотите, чтобы процессы, используйте слишком много памяти для уничтожения, а не для того, чтобы ваша система работала медленно, вы можете отключить своп. Запуск sudo swapoff -a достигнет этого до перезагрузки; чтобы отключить своп навсегда, вам нужно отредактировать /etc/fstab, чтобы удалить раздел swapfile / swap, удалив или закомментировав строку с помощью swap в третьем столбце. Например, мой /etc/fstab выглядит примерно так:

# <file system> <mount point> <type> <options> <dump> <pass> /dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1 # /boot was on /dev/sda1 during installation UUID=fdedeca9-dafe-1a05-0866-7502fda1a7ea /boot ext2 defaults 0 2 /dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0

Чтобы отключить swap, я бы прокомментировал последнюю строку (помещая хэш # в начале строки) затем перезагрузитесь. Убедитесь, что вы не изменяете какой-либо из остальных файлов, иначе вы можете сделать вашу систему неспособной к загрузке.

Предостережение: если вы отключите подкачку и не имеете достаточной физической памяти для базовых системных служб , убийца OOM может решить убить одного из них и привести к сбою в работе системы или стать непригодным для использования (в этом вопросе говорится, что вы хотите избежать).

3
ответ дан 24 July 2018 в 13:45

Если процесс ест слишком много памяти, система должна защитить себя через убийцу OOM, который является стандартной функцией в любой системе Linux.

Как указано в наилучшем ответе до того, как Убийца OOM решает, какой процесс убить первым?

Если память исчерпывающе исчерпана процессами, насколько это может угрожать стабильности системы, тогда в картину входит убийца OOM. ПРИМЕЧАНИЕ. Задача OOM Killer - продолжить процесс уничтожения до тех пор, пока не будет освобождена достаточная память для бесперебойного функционирования остальной части процесса, который пытается запустить ядро. OOM Killer должен выбрать лучший процесс (ы), чтобы убить. Лучше всего здесь относится к этому процессу, который освободит максимальную память при убийстве и также будет наименее важным для системы. Основная цель - убить наименьшее количество процессов, которые минимизируют нанесенный урон и в то же время максимизируют освобожденную память. Чтобы облегчить это, ядро ​​поддерживает oom_score для каждого из процессов. Вы можете увидеть oom_score каждого из процессов в файловой системе / proc в каталоге pid. $ cat /proc/10292/oom_score Чем выше значение oom_score любого процесса, тем выше вероятность его убийства OOM Killer в ситуации отсутствия памяти.

Если ваша система выходит из строя, я предлагаю точно настроить политику OOM, настроив oom_score ваших процессов.

Маловероятно, что убийца OOM был отключен, но чтобы сделать Убедитесь, что эта команда возвращает 0:

$ sudo sysctl vm.overcommit_memory
vm.overcommit_memory = 0

Ссылки:

http://www.oracle.com/technetwork/articles/servers-storage-dev/ oom-killer-1911807.html https://superuser.com/questions/1150215/disabling-oom-killer-on-ubuntu-14-04/1150229 https://unix.stackexchange.com/questions/153585/how- make-the-oom-killer-solve-which-process-to-kill-first https://www.kernel.org/doc/Documentation/sysctl/vm.txt
6
ответ дан 22 May 2018 в 15:34

Сделайте раздел подкачки или файл подкачки. Они похожи на RAM, но на HDD, поэтому он намного медленнее. Когда у вас недостаточно ОЗУ, система будет хранить данные на HDD вместо ram. Вы должны указать его размер. Обычно рекомендуется, чтобы вы делали его примерно того же размера, что и ваша оперативная память.

файл подкачки проще сделать, но не позволяет вам спячки на HDD.

swap-файл : https://www.howtoforge.com/ubuntu-swap-file

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

раздел подкачки: https://www.howtoforge.com/ubuntu-swap-file

1
ответ дан 22 May 2018 в 15:34
  • 1
    Это вряд ли поможет - проблема, вероятно, будет фактически решена путем отключения всех настроек swap в настоящее время! – Josh 12 January 2018 в 21:45
  • 2
    @Josh не могли бы вы рассказать о том, почему отключение swap должно быть решением для использования 100% RAM. Это против всего здравого смысла в моем мире. – Soren A 13 January 2018 в 04:41
  • 3
    @SorenA Я думаю, что описанная проблема («система становится непригодной, если мне повезет», я могу перемещать мышь около 1 пикселя за 10 секунд »), вероятно, вызвано избиением системы, пытаясь поменять местами многие страницы в и сразу. Отключение подкачки должно привести к тому, что приложение, зависящее от памяти, будет убито, а не остановит всю систему. – Josh 13 January 2018 в 04:48

@Josh ответил:

Я думаю, что описанная проблема («система становится непригодной, если мне повезет», я могу перемещать мышь около 1 пикселя за 10 секунд »), вероятно, вызвано система рушится, пытаясь поменять сразу несколько страниц. Отключение подкачки должно привести к тому, что приложение, зависящее от памяти, будет убито, а не остановит всю систему.

Это решило мою проблему.

У меня был своп, когда я установил Lubuntu, однако позже он был удален с gparted. Я не редактировал / etc / fstab, что и вызвало проблему. После того, как своп был удален правильно, убийца OOM начал работать по назначению.

0
ответ дан 22 May 2018 в 15:34
  • 1
    Я бы хотел, но поскольку @Josh решил прокомментировать, я мог только переписать его в качестве ответа, но я должен подождать 48 часов, чтобы выбрать его в качестве ответа. Эти два других дают полезную информацию, однако они не решают проблему. – Holykebab 14 January 2018 в 16:12
  • 2
    О, моя ошибка. В этом случае я рекомендую изменить этот ответ, чтобы развернуть его с подробными сведениями о том, как это сделать. (См. Также Как написать хороший ответ? для общих советов о том, какие ответы наиболее ценны в Ask Ubuntu.) Кроме того, я попрошу Джоша написать собственный ответ. – David Foerster 14 January 2018 в 16:36
  • 3
    @DavidFoerster Я написал ответ . – Josh 14 January 2018 в 17:29

Сделайте раздел подкачки или файл подкачки. Они похожи на RAM, но на HDD, поэтому он намного медленнее. Когда у вас недостаточно ОЗУ, система будет хранить данные на HDD вместо ram. Вы должны указать его размер. Обычно рекомендуется, чтобы вы делали его примерно того же размера, что и ваша оперативная память.

файл подкачки проще сделать, но не позволяет вам спячки на HDD.

swap-файл : https://www.howtoforge.com/ubuntu-swap-file

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

раздел подкачки: https://www.howtoforge.com/ubuntu-swap-file

1
ответ дан 17 July 2018 в 23:14

@Josh ответил:

Я думаю, что описанная проблема («система становится непригодной, если мне повезет», я могу перемещать мышь около 1 пикселя за 10 секунд »), вероятно, вызвано система рушится, пытаясь поменять сразу несколько страниц. Отключение подкачки должно привести к тому, что приложение, зависящее от памяти, будет убито, а не остановит всю систему.

Это решило мою проблему.

У меня был своп, когда я установил Lubuntu, однако позже он был удален с gparted. Я не редактировал / etc / fstab, что и вызвало проблему. После того, как своп был удален правильно, убийца OOM начал работать по назначению.

0
ответ дан 17 July 2018 в 23:14

Если процесс ест слишком много памяти, система должна защитить себя через убийцу OOM, который является стандартной функцией в любой системе Linux.

Как указано в наилучшем ответе до того, как Убийца OOM решает, какой процесс убить первым?

Если память исчерпывающе исчерпана процессами, насколько это может угрожать стабильности системы, тогда в картину входит убийца OOM. ПРИМЕЧАНИЕ. Задача OOM Killer - продолжить процесс уничтожения до тех пор, пока не будет освобождена достаточная память для бесперебойного функционирования остальной части процесса, который пытается запустить ядро. OOM Killer должен выбрать лучший процесс (ы), чтобы убить. Лучше всего здесь относится к этому процессу, который освободит максимальную память при убийстве и также будет наименее важным для системы. Основная цель - убить наименьшее количество процессов, которые минимизируют нанесенный урон и в то же время максимизируют освобожденную память. Чтобы облегчить это, ядро ​​поддерживает oom_score для каждого из процессов. Вы можете увидеть oom_score каждого из процессов в файловой системе / proc в каталоге pid. $ cat /proc/10292/oom_score Чем выше значение oom_score любого процесса, тем выше вероятность его убийства OOM Killer в ситуации отсутствия памяти.

Если ваша система выходит из строя, я предлагаю точно настроить политику OOM, настроив oom_score ваших процессов.

Маловероятно, что убийца OOM был отключен, но чтобы сделать Убедитесь, что эта команда возвращает 0:

$ sudo sysctl vm.overcommit_memory vm.overcommit_memory = 0

Ссылки:

http://www.oracle.com/technetwork/articles/servers-storage-dev/ oom-killer-1911807.html https://superuser.com/questions/1150215/disabling-oom-killer-on-ubuntu-14-04/1150229 https://unix.stackexchange.com/questions/153585/how- make-the-oom-killer-solve-which-process-to-kill-first https://www.kernel.org/doc/Documentation/sysctl/vm.txt
6
ответ дан 17 July 2018 в 23:14

Сделайте раздел подкачки или файл подкачки. Они похожи на RAM, но на HDD, поэтому он намного медленнее. Когда у вас недостаточно ОЗУ, система будет хранить данные на HDD вместо ram. Вы должны указать его размер. Обычно рекомендуется, чтобы вы делали его примерно того же размера, что и ваша оперативная память.

файл подкачки проще сделать, но не позволяет вам спячки на HDD.

swap-файл : https://www.howtoforge.com/ubuntu-swap-file

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

раздел подкачки: https://www.howtoforge.com/ubuntu-swap-file

1
ответ дан 24 July 2018 в 13:45
  • 1
    Это вряд ли поможет - проблема, вероятно, будет фактически решена путем отключения всех настроек swap в настоящее время! – Josh 12 January 2018 в 21:45
  • 2
    @Josh не могли бы вы рассказать о том, почему отключение swap должно быть решением для использования 100% RAM. Это против всего здравого смысла в моем мире. – Soren A 13 January 2018 в 04:41
  • 3
    @SorenA Я думаю, что описанная проблема («система становится непригодной, если мне повезет», я могу перемещать мышь около 1 пикселя за 10 секунд »), вероятно, вызвано избиением системы, пытаясь поменять местами многие страницы в и сразу. Отключение подкачки должно привести к тому, что приложение, зависящее от памяти, будет убито, а не остановит всю систему. – Josh 13 January 2018 в 04:48

@Josh ответил:

Я думаю, что описанная проблема («система становится непригодной, если мне повезет», я могу перемещать мышь около 1 пикселя за 10 секунд »), вероятно, вызвано система рушится, пытаясь поменять сразу несколько страниц. Отключение подкачки должно привести к тому, что приложение, зависящее от памяти, будет убито, а не остановит всю систему.

Это решило мою проблему.

У меня был своп, когда я установил Lubuntu, однако позже он был удален с gparted. Я не редактировал / etc / fstab, что и вызвало проблему. После того, как своп был удален правильно, убийца OOM начал работать по назначению.

0
ответ дан 24 July 2018 в 13:45
  • 1
    Я бы хотел, но поскольку @Josh решил прокомментировать, я мог только переписать его в качестве ответа, но я должен подождать 48 часов, чтобы выбрать его в качестве ответа. Эти два других дают полезную информацию, однако они не решают проблему. – Holykebab 14 January 2018 в 16:12
  • 2
    О, моя ошибка. В этом случае я рекомендую изменить этот ответ, чтобы развернуть его с подробными сведениями о том, как это сделать. (См. Также Как написать хороший ответ? для общих советов о том, какие ответы наиболее ценны в Ask Ubuntu.) Кроме того, я попрошу Джоша написать собственный ответ. – David Foerster 14 January 2018 в 16:36
  • 3
    @DavidFoerster Я написал ответ . – Josh 14 January 2018 в 17:29

Если процесс ест слишком много памяти, система должна защитить себя через убийцу OOM, который является стандартной функцией в любой системе Linux.

Как указано в наилучшем ответе до того, как Убийца OOM решает, какой процесс убить первым?

Если память исчерпывающе исчерпана процессами, насколько это может угрожать стабильности системы, тогда в картину входит убийца OOM. ПРИМЕЧАНИЕ. Задача OOM Killer - продолжить процесс уничтожения до тех пор, пока не будет освобождена достаточная память для бесперебойного функционирования остальной части процесса, который пытается запустить ядро. OOM Killer должен выбрать лучший процесс (ы), чтобы убить. Лучше всего здесь относится к этому процессу, который освободит максимальную память при убийстве и также будет наименее важным для системы. Основная цель - убить наименьшее количество процессов, которые минимизируют нанесенный урон и в то же время максимизируют освобожденную память. Чтобы облегчить это, ядро ​​поддерживает oom_score для каждого из процессов. Вы можете увидеть oom_score каждого из процессов в файловой системе / proc в каталоге pid. $ cat /proc/10292/oom_score Чем выше значение oom_score любого процесса, тем выше вероятность его убийства OOM Killer в ситуации отсутствия памяти.

Если ваша система выходит из строя, я предлагаю точно настроить политику OOM, настроив oom_score ваших процессов.

Маловероятно, что убийца OOM был отключен, но чтобы сделать Убедитесь, что эта команда возвращает 0:

$ sudo sysctl vm.overcommit_memory vm.overcommit_memory = 0

Ссылки:

http://www.oracle.com/technetwork/articles/servers-storage-dev/ oom-killer-1911807.html https://superuser.com/questions/1150215/disabling-oom-killer-on-ubuntu-14-04/1150229 https://unix.stackexchange.com/questions/153585/how- make-the-oom-killer-solve-which-process-to-kill-first https://www.kernel.org/doc/Documentation/sysctl/vm.txt
6
ответ дан 24 July 2018 в 13:45

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

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