LINUX.ORG.RU

Почему Linux начинает использовать своп, когда еще половина памяти свободна?


0

0

Первый раз заметил, когда компилировал abiword. gcc написал, что ему не хватает памяти. Пришлось включить своп (до этого у меня его не было). Но вот теперь замечаю, что подкачка начинает использоваться, когда еще свободна половина оперативки (100 из 192Mb, остальное кэш). Может надо что-то изменить, чтобы при необходимости кэш уменьшался?

★★★★★

Скорее всего, у тебя делалось что-то такое, чему не хватило оперативки и начал использоваться своп. А потом оно просто продолжает там валяться, пока не понадобится.

Rock
()
Ответ на: комментарий от Rock

Да, при компиляции он и занял своп, но его он взял 50Mb, когда в оперативке было 100 свободно.

init ★★★★★
() автор топика
Ответ на: RE от hooj

> может ядро с поддержкой неагрессивного свопа?

А как проверить? И что это такое?

init ★★★★★
() автор топика

А есть ли программы в линуксе для чистки/оптимизации памяти? А то у меня 768 оперативки и 1 гиг своп. Своп использует мегабайт 50-100 максимум и все 768 оперативки якобы сожрано программами. Комп не сервер, просто линукс на десктопе (дистр федора) + пара серверов (фтп + апач). Оболочка гном (xd-unstable), работаю одним юзверем. Просто когда смотришь список программ запущенных, то не совпадают суммы мб памяти используемой программами и сколько используется. Просто куда девалась память, куда она ушла...?

anonymous
()
Ответ на: комментарий от anonymous

> не совпадают суммы мб памяти используемой программами и сколько используется

А чем смотришь свободную память? free?

Rock
()

Cached - это тоже свободно. Видимо разработчики посчитали, что так практичней (отдавать предпочтение кэшу над свопом). Ведь линукс и на реальных серверах под нагрузкой работает, а там своп и так и так почти сразу начинает использоваться. А дома можно и без свопа обойтись и включить его только при надобности, например если программка какая-то пожалуется. Программки могут запросить сколько угодно: вот например апаче2 у меня 223 мега использует, xfree86 196м, мозилла 122м, vmware 250, и еще куча других прог вроде acroread - все вместе небось около гига занимают, но вместе висят, хотя у меня всего 512 мегов и своп выключен. Это объясняется тем, что реально линукс выделяет память процессу постранично и пытается это сделать только при обращении к несуществующей странице.

Чтобы вернуть все из свопа в память ("очистить" своп) достаточно сделать swapoff -a && swapon -a.

rihad
()
Ответ на: комментарий от rihad

А мне нравится это решение - включать своп по необходимости. Так и сделаю.

init ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.