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 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.