> Недавно ставил линукс на древность с 2 Гб, дал свопа еще 2
> Гб. Открыл скайп, огнелис. На восьмой вкладке система встала колом и
> перестала отзываться. По top'у использование свопа было всего порядка 500 Мб, справедливости ради - тут линуксный оверкомит совершенно не виноват в том, что в вашей древности оказалась битая память или перегревающийся процессор/уже сгоревший от перегрева южный мост (под описание подходит и то и другое).
> т.е. всего было занято порядка 55% виртуальной памяти. Какой тут оверкоммит.
оверкомит - это о совершенно противоположном - когда своп не занят ничем, память по сути тоже, но _могли_бы_ быть теоретически заняты, если вся память, которую программы себе поназатребовали, на самом деле была бы хотя бы один раз записана.
Линукс в дефолтных настройках воспринимает эту ситуацию положительно - то есть на подобные запросы кладет, пока память не понадобится на самом деле (к этому моменту может кто-то прожорливый уже завершится, или кто-то совсем ненужный усвопится, или он вообще никогда не наступит). К сожалению, при этом программе не оставляется никакого шанса обработать такую отложенную нехватку памяти, когда она на самом деле в нее упрется.
У фри дефолты другие - sigsegv приезжает сразу же, как память _теоретически_ могла бы понадобиться. Причем делается это сразу, без попыток освободить удерживаемую ядром (привет, zfs arc и прочие vm.zone-s), чтобы избежать возможных дидлоков. Поэтому там нет oom killer, но во многих случаях когда можно было бы дать программе спокойненько доработать до конца и умереть exit(0), никому не помешав, потому что вся ее память - cow'нута с другой копии, вместо этого ее прибивают.