« Отговор #14 -: Jun 24, 2005, 15:03 »
Според мене проблема си е в ядрото, и по-точно във виртуалната памет. Не знам как точно действа виртуалната памет в линукс, но съм останал с впечатление че е доста известна с неправилна употреба на swap.
По пронцип като се случи такова нещо (thrashing) - системата да прекарва повече време в суапване на памет, от колкото в потребителските програми, би трябвало ядрото временно да намали приоритета на наи-малко използваните програми и да суапне тяхната памет, за да се освободи повече RAM за тази която ползваш в момента. Но в някои случаи, ако въпросната програма иска прекалено много памет и пак не може да се вмести във RAM, и това не помага. Ако общото количество памет което програмата иска не надхвърля RAM+swap, би трябвало все някога да си свърши задачата. Може би след час, два, или повече ако трябва.
Но каквото и да е ядрото, даже и да не се налага да го рестартираш, то няма възможност да задели на една програма повече памет, от колкото съществува в компютъра (рам+суап). Затова единственият изход е да използваш друга програма, както си и направил. И аз по същата причина минах от KDE на GNOME - защото програмите са по-леки и бързи, а в много случаи по-качествени и по-малко бъгави. После и ГНОМЕ почна да ми се струва тежичко и минах на нещо още по минималистично - XFCE.
А това че системата е проектирана да използва максимално свободната памет няма нищо общо в случая. Цялата свободна памет се използва само за дискови буфери, т.е. кеш. Тези буфери се заделят от ядрото, не от userland процесите, и се заделят само в RAM, никога в swap. И при недостиг на RAM въпросните буфери се записват обратно на диска (ако се налага) и се освобождават. Само това се има предвид под "максимална употреба на свободната памет". Иначе по правило колкото по-малко памет ползва една програма, толкова по-добре.