6

Я не хочу, чтобы мой компьютер обменивался данными на диск. У меня нет раздела подкачки:

$ free
             total       used       free     shared    buffers     cached
Mem:       3841912    3670012     171900          0      74980     699652
-/+ buffers/cache:    2895380     946532
Swap:            0          0          0

Назад в день (возможно, совсем недавно, как ядро 2.4?) это раньше работало. Нарушитель памяти, убитый памятью, будет убит, и я перезапущу их. Но теперь (Linux 2.6.38-8-generic # 42-Ubuntu SMP, понедельник, 11 апреля 03:31:24 UTC 2011 x86_64) google-chrome (13.0.782.24 beta) регулярно отправляет мою машину в смертельную спираль подкачки. Или, по крайней мере, что-то похожее на обмен: X обновляется безвозвратно, вспыхивает дисковод, диаграмма памяти панели gnome достигает предела, и я вижу это сообщение в системном журнале:

rtkit-daemon[1771]: The canary thread is apparently starving. Taking action.
rtkit-daemon[1771]: Demoting known real-time threads.
...

Но, согласно syslog, ядро не запускает oom killer. Для удобства я установил swappiness на 0:

$ cat /proc/sys/vm/swappiness
0

Мой обходной путь - использовать ctrl-alt-sysrq-f, когда это начинает происходить. У кого-нибудь есть рецепт для настройки Linux для запуска oom_kill самостоятельно, в этой ситуации?

2 ответа2

4

ООМ не обязательно убивает процесс, который, как вы думаете, будет. Прочитайте об этом здесь:http://lwn.net/Articles/317814/

Я подозреваю, что происходит потому, что Chrome использует разные процессы для каждой страницы, это сбивает с толку эвристику OOM-убийцы, и другие процессы уничтожаются, а не родительский процесс Chrome.

В соответствии с этим, OOM-killer любит убивать вредоносные процессы. Так что попробуйте установить chrome на значение больше 0 .. может сделать его более целевым :-)

0

Я пришел к выводу, что современный Linux не любит работать без виртуальной памяти. Возможно, избавление от свопа имело смысл в дни медленных жестких дисков / старых алгоритмов виртуальной машины / и т.д. Или, может быть, вы могли бы перепрыгнуть через несколько обручей, чтобы настроить убийцу ой ...

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .