Техническое, 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 довольно-таки единый «вид», и, на самом деле, крайне имеют существенно более полномочий, нежели на поверку потребуется. Однако, хотя в юникс-системах неувязка просто-напросто с вредными и другими вполне плохими програмками была практически всецело твердо решена немного иными способами.

Теги: , , ,

Оставить комментарий