Система: практически дефолтный Arch со всеми обновлениями, ядро 2.6.36, 32-разрядная сборка.
В первый раз столкнулся с проблемой случайно, когда Опера, проработав двое суток, выжрала всю доступную память и захотела еще. Комп работал без свопа. Переключиться в консоль смог, но залогиниться рутом — нет, логин выкидывало по 60-секундному таймауту.
Перезагрузился и решил попробовать воспроизвести ситуацию целенаправленно. Открыл на консолях top, iotop, vmstat и стал смотреть.
Проблема воспроизводится как со свопом, так и без, строго в момент исчерпания всей доступной виртуальной памяти.
Как воспроизводится: нагружаем систему любым способом. Я использовал запуск 5-и браузеров с несколькими десятками открытых вкладок.
Как происходит:
При исчерпании ОЗУ, система начинает выгружать страницы в своп: в статистике vmstat растут значения si и so. Повышается %wa, но фризов нет (хотя конечно иксами пользоваться невозможно, отрисовка окон лагает дико). Далее самое интересное. Своп заканчивается, в оперативе остаётся свободным 20-30 мегабайт. si и so падают до нуля, поскольку выгружать страницы уже некуда, и загружать обратно тоже практически некуда. Система работает в таком режиме некоторое время (несколько секунд), потом всё мгновенно фризится.
Top, iotop и vmstat продолжают обновляться, но очень медленно. Из них видно, что:
1) %wa почти 100%.
2) процессы продолжают выполняться, но при этом прочно сидят большую часть времени в состоянии uninterruptible sleep
3) iotop показывает интенсивный обмен данными
4) vmstat показывает высокое bi при практически нулевых si и so!
Ну в общем, понятно.
Выйти из этого состояния можно только либо выполнив killall имя_жирного_процесса, либо Ctrl+Alt+Del. Если в момент фриза вы не были залогинены в консоли, вам не повезло: логин висит больше минуты, а затем отменяется по таймауту. killall, кстати, тоже отрабатывает минуты 2.
Собственно, вопрос: что это такое и как это лечить?
У меня есть только одна гипотеза:
В память спроецировано множество файлов, начиная от исполняемых, и заканчивая различными файлами данных. Соответственно, все немодифицированные страницы памяти можно освободить, поскольку в любой момент можно подгрузить обратно с диска. В итоге при исчерпации ОЗУ и места в свопе, система этим и занимается: постоянно освобождает страницы отображенных в память файлов одних процессов, и загружает на их место страницы файлов других процессов, и так в бесконечном цикле.
Именно этим можно объяснить высокие значения bi.
Хотя я могуть быть в корне не прав.
В общем, какие есть соображения на сей счёт? Хотелось бы, во-первых, понять механизм возникновения фриза. И во-вторых, найти метод решения.
Пока я вижу только один костыльный выход: прикрутить скрипт, который будет мониторить состояние системы и в случае фриза последовательно убивать самые жирные процессы, пока система не развиснет.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Led
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Umberto
Ответ на:
комментарий
от geekless
Ответ на:
комментарий
от Lumi
Ответ на:
комментарий
от leave
Ответ на:
комментарий
от Lumi
Ответ на:
комментарий
от Lumi
Ответ на:
комментарий
от Deleted
Ответ на:
комментарий
от geekless
Ответ на:
комментарий
от Lumi
Ответ на:
комментарий
от AITap
Ответ на:
комментарий
от Lumi
Ответ на:
комментарий
от leave
Ответ на:
комментарий
от leave
Ответ на:
комментарий
от Led
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от no-dashi
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Падение системы при исчерпании оперативной памяти (2016)
- Форум Зависание убунты при исчерпании оперативной памяти (2018)
- Форум Исчерпание ресурсов (2005)
- Форум параметры виртуальной памяти (2003)
- Форум Эффективная борьба с зависаниями по исчерпании памяти? (2019)
- Форум Когда линь перестанет виснуть при исчерпании памяти? (2022) (2022)
- Форум Обьясните по работе виртуальной памяти (2018)
- Форум оргиназация памяти для виртуальных машин (2008)
- Новости Авторегулирование подкачки подсистемы виртуальной памяти (2003)
- Форум Фризится изображение (2017)