LINUX.ORG.RU

Mенеджер памяти или кто ее ест


0

0

Привет всем!

Заметил одну особенность: чем дольше работает система тем больше используется своп. В этом не было бы ничего примечательного если бы не одно но - использованный своп не отдается обратно ОС. И даже если есть свободная память (например 2821912k), то своп продолжает использоваться. Ниже представлен правильный вариант - своп 0, свободного озу море.

Если система поработает день/два своп потихоньку начинает расти.

Правильный вариант

vm.swappiness = 0top - 09:16:55 up 4 days,  1:00,  6 users,  load average: 4.18, 2.77, 1.71
Tasks: 208 total,   2 running, 206 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.8%us,  0.7%sy,  0.0%ni, 98.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4111136k total,  1289224k used,  2821912k free,    25516k buffers
Swap:  5406712k total,        0k used,  5406712k free,   815396k cached

Как обыкновенный граджадин я понимаю, что после завершения задачи память должна отдаваться системе. Так вот, происходит это только когда полностью завершить сеанс. Вывод/вопрос: это X , это KDE, это какое-то QT-based приложение? наиболее особенно заметно когда работает Okular

syctl -a | grep swap
vm.swappiness = 0

Вопрос: как выяснить, что происходит и кто виноват?

P.S. Fedora 11, KDE 4.3.5, kernel 2.3.30


В Okular есть настройка использования памяти. Подозреваю, что, чем ниже установлена планка, тем чаще используется своп. У меня на максимум установлено, не замечал, чтобы своп вообще использовался.

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

Ок, не знал. Спасибо, попробую. Может поможет. Но все равно - почему при закртии окуляра не отдается память системе? А только после завершения сеанса Х?

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

Потому что кеды. Все интегрировано и связано. Окуляр для просмотра использует стандартные библиотеки, которые в то же время могут вызываться другими программами. По идее, окуляр должен отдать память но кто-то недосмотрел, и теперь библиотека будет висеть в памяти с кусочками окуляра, пока ее не закроют все использующие программы.

anonymous
()

Память где-то течёт? Попробуй методом исключения. Сначала подержи систему в голой консоли, потом только с одними голыми иксами, без DE, потом только с одним DE, а потом уж как захочется. Долго конечно, зато не требует никаких особенных знаний и навыков.

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