Б'юсь об заклад, що система насправді не «замерзла» (у сенсі, що ядро висіло), а навпаки, було дуже невідповідальним. Цілком ймовірно, що це було просто важко замінити, в результаті чого інтерактивна продуктивність та пропускна здатність системи впали, як камінь.
Ви можете вимкнути своп, але це просто змінює проблему від низької продуктивності до процесів, знищених OOM (і все задоволення, що викликає), а також зниження продуктивності через менш доступний кеш-диск диска.
Крім того, ви можете використовувати обмеження ресурсів на кожен процес (зазвичай його називають rlimit
та / або ulimit
), щоб вилучити можливість одного процесу, який займає смішний об'єм пам'яті та спричиняє обмін, але це просто штовхає вас на розважальну територію з процесами, які вмирають на незручні моменти, тому що вони хотіли трохи більше пам’яті, ніж система їх хотіла дати.
Якби ви знали, що збираєтесь зробити щось, що може спричинити масове використання пам'яті, ви, ймовірно, можете написати програму для обгортки, яка зробила, mlockall()
а потім виконала вашу оболонку; це збереже його в пам'яті, і було б найближчим чином "зберегти чуйне ядро", яке ви, швидше за все, отримаєте (адже це не те, що процесор перенасичений, це проблема).
Особисто я підписався на метод управління ресурсами "не роби дурних речей". Якщо ви отримали корінь, ви можете завдати всілякі збитки системі, і тому робити все , про що не знаєте ймовірних результатів, - це ризикована справа.