On Mon, Apr 04, 2011 at 06:38:00PM +0400, Vitaly Lipatov wrote: > Хотел поинтересоваться — все десять лет, что я пользуюсь Linux, > наблюдаю одно и то же поведение: если программа начинает потреблять много > памяти, то она поглощает всю свободную, потом начинается своппиннг, в этот > момент система начинает тормозить, и если не успеть убить процесс, то система > уходит в бесконечный своп (из которого может и выйдет минут через 30-40). > Когда-то я видел соотв. код в ядре, который достаточно наколенно определял > виновника по ряду показателей (использование процессора, памяти и пр) и убивал > его. Это действительно иногда происходит (видимо, елси ядро успевает > среагировать). > > Так вот, вопроса два: > > 1. Действительно ли это общепринятая ситуация и все так с этим и живут? > > Для сборки пакетов в связи с такими багами > https://bugzilla.altlinux.org/show_bug.cgi?id=25042 > это тоже может быть актуально. > > 2. Есть ли мысли, что сделать с системой, чтобы она не позволяла так с собой > обойтись? Есть несколько способов лимитировать процессы и/или группы процессов по памяти. Давно есть /etc/security/limits.conf (с некоторых пор еще и /etc/security/limits.d/), у пользователей ovz есть ubc, ну и, наконец, теперь есть cgroups. Можно еще поиграть с /proc/sys/vm/ на тему overcommit, см. /usr/share/doc/kernel-doc-std-2.6.38/sysctl/vm.txt -- ldv