Примечание: это случилось со мной, в определенной необычной ситуации. Если вы устраняете проблемы с проблемой, это может быть полезно. Я не имею в виду, что все машины должны иметь своп.
Может быть!
Я столкнулся с проблемами в прошлом с помощью «Прибор», который я построил, работает Linux - работает на компактном флэш-устройстве, я не хотел носить мою CF, используя своп, и для приложения было достаточно памяти.
Большая часть этих приборов работала нормально, но на особенно заняточной коробке, я бежал в проблеме:
фрагментация памяти
без помещения помещения, память постепенно стала все более и более фрагментированной, особенно с длинными рабочими процессами ( Несмотря на то, что у меня было много свободной памяти, все это было в очень маленьких битах). Я положил некоторое освещение пространства, и сказал Linux, чтобы не использовать его, если не пришлось; Это решило проблему полностью.
В дополнение к всему остальное пространство Swap позволяет перемещать память вокруг, дефрагментируя ее. Если у вас фрагментированная память, и вам нужен один большой кусок, фрагменты будут заменены; Поскольку они помешаны обратно, они эффективно дефрагментированы.
Проверьте / proc / buddyinfo - мой выглядит так, как сейчас:
Node 0, zone DMA 9 5 3 4 2 3 2 2 3 3 1
Node 0, zone DMA32 33901 1149 0 0 0 0 0 0 0 0 1
Node 0, zone Normal 2414 1632 259 22 3 0 2 0 1 1 0
Числа представляют собой блоки разных размеров; Каждый размер составляет половину размера следующего блока, от 4 МБ блоков слева, до 4 КБ справа (то есть 4 МБ, 2 МБ, 1 МБ и т. Д.). Вновь загруженная машина должна иметь все блоки слева, очень мало справа (= не фрагментированы). Помните также, что такое же количество памяти (например, 4 МБ) будет представлена как разные числа через столбцы - 1 блок в левом столбце, 1024 в правом верхнем столке.
Память выделяется из пула, насколько это возможно, насколько это возможно; например Если ваша программа хочет 12 КБ памяти (в одном Go), она возьмет ее из столбца 16 КБ; Остальная часть появится в столбце 4 КБ. Если нет 16 КБ блоков, то он займет из блоков 32 КБ, что приведет к 16 КБ и 4 КБ, останусь, и так далее.
Если нет блоков памяти достаточно больших, и у вас есть помещение помещения, то например Если вы хотите 16 КБ памяти, он найдет наименее используемый блок 16 КБ (который может включать в себя блок 4 КБ, доступный блок 4 КБ и 2 более используемых блоков 4KB), перемещать используемые части только для замены, а также выделить освобожденную память в новое приложение.
В коробке, который разбился, у меня были сотни тысяч блоков 4 КБ и 8 КБ, а не намного.
Насколько я могу сказать (проходя мимо разбитых машин!) Ядро переместится из памяти, чтобы поменять и поменять в память, но никогда не перейдет из памяти в память.
Решение моей ситуации было найдено в http://www.tweaking4all.com/os-tips-and-tricks/uefi-dual-boot-windows81-ubuntu/