Техническое, Linux: лимиты и издевательство над системой.
Имеем: относительно дефолтная Debian-система (и не абсолютно непременно debian), 1 гб памяти, 1 гб свопа (чтоб можнож было мягко запускать что-нибудь жирноразмерное, не выгружая всё остальное).
Действие: GNU screen, ctrl+a, “scrollback 6553666″. Конечно, либо “dd if=/dev/zero of=/dev/null bs=2048M”.
Что удается? Одна точная программа пробует занять всю память. Впрочем, ситуация в линукс-системах предусмотренная - она постепенно занимает всю память, нарывается на погрешность нехватки памяти, и скорбно убивается ядром как исключительно совсем жирная.
Но есть 1 неувязка: своп. Значит а непосредственно - до того как программа станет убита ядром, она захочет ужасно занять весь своп. Возможно, что, при по-старому обыкновенном винчестере, будеть полностью сравнимо очень-очень длинным занятием.
Решения? ulimit, /etc/security/limits.conf? Но - данное не полнейшее решение. Кроме того особенно когда смутно припомнить 1 мой навык с пуском “gem” (ruby gems): Правильно не понимаю, что такового извращённого я устроил, хотя при попытке правильно поставить 1 gem Тихо в пустующий каталог данная рубёвая программа отожрала этак 1.5 гб памяти (то есть ещё и совместно со свопом). Но таки отработала.
Хотя, ежели сердито прибавить в .bashrc что-нибудь вроде “ulimit -m 768″ - то при надобности данное станет возможно исправить, ну а в остальном - оно станет выручать от этих вот граблей (более-менее).
* Несколько замечаний:
1. Казалось, что-то оно окончательно не трудится как следует….
2. Разумеется это всё-таки не классифицируется system-wide решением.
Правильным решением всех похожих трудностей мне может показаться на первый взгляд нересурсозатратная (”minimal overhead”) полувиртуализация, Что-то это ещё_только_добровольно делают не так давно забукмаркленном мной Virtual Square .
В моём представлении сущность трудности показывается в том, что все программы крайне имеют 1 довольно-таки единый «вид», и, на самом деле, крайне имеют существенно более полномочий, нежели на поверку потребуется. Однако, хотя в юникс-системах неувязка просто-напросто с вредными и другими вполне плохими програмками была практически всецело твердо решена немного иными способами.
Теги: Linux, Издевательство, Лимит, Система
