LINUX.ORG.RU

X Window съедает всю память

 


0

1

Домашний компьютер включён круглосуточно. Время от времени, раз в 2 недели и реже, он намертво виснет или самопроизвольно перезагружается. Есть подозрение, что иксы съедают всю память — один раз пропала отзывчивость и начало активно работать диском, успел переключиться в консоль и заметил, что почти всю память занял /usr/bin/X. Когда прибил и перезапустил иксы, всё пришло в норму. До следующего подвисания.

1. Как установить, что это именно иксы?

С этим разобрался — в /var/log/kernel/current нашёл строку:

[kernel] Out of memory: Kill process 13179 (X) score 639 or sacrifice child

2. И что с ними сделать?

Gentoo Linux, ядро 3.12.13, X.org 1.17.1, Radeon, закрытый драйвер 15.1.

В /var/log/Xorg.* ничего интересного.

UPD: кажется, нашёл способ вызывать утечки:

for f in {1..10000} 
do 
echo $f
gpicview image1.jpg & 
gpicview image2.jpg & 
gpicview image3.jpg & 
gpicview image4.jpg & 
sleep 1
killall gpicview
done

UPD2: С открытым драйвером Radeon память не течёт. Попробую сегодня, когда будет время, прогнать ещё несколько десятков тысяч циклов для верности.

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 8)

успел переключиться в консоль и заметил, что почти всю память занял /usr/bin/X

а почему оно не свопится?

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от user_id_68054

Своп забыл включить.

Главный вопрос: зачем иксы внезапно отъели 15 гигабайт, и как предотвратить повторение подобного?

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

понятно.. да — 15 гигов это слишком :-) ..

но причин слишком много может быть.. (баг в бекенде, или баг в любой из X-програм )

тут придётся тебе похоже методом тыка искать причину :)

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

Каком бекэнде?

Каким образом баг в программе вызывает утечку в иксах?

Работавшие на момент зависания программы последние 2 раза: Firefox, Skype, qbittorrent, Konsole, mc; KDE 4.

Или имеют значение программы запускавшиеся за несколько часов до подвисания?

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от question4

Каким образом баг в программе вызывает утечку в иксах?

например создаётся новый surface бесконечно :) .. и не удаляется и не отслеживается (так как не отслеживается — то сама програма не набухает, а только иксы набухают)

ну эт я так — гипотетическое предположение на уровне фантазий :-)

более вероятно конечно, что иксовый бэкенд

user_id_68054 ★★★★★
()
Последнее исправление: user_id_68054 (всего исправлений: 1)
Ответ на: комментарий от user_id_68054

А может ли это быть связано с необычным режимом работы xrandr — экран постоянно повёрнут на 90 градусов?

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

дык ктож знает что понаписали эти программисты!

но ты так не переживай! может после обвновления — поправят что-нибудь :-)

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

например создаётся новый surface бесконечно :)

mplayer может так делать. Многократный запуск видеороликов в нём раза 2 приводил к падению системы.

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

а дрова опенсурсные и свеженькое ядро?

Попробую.

Тут проблема в чём — чтобы проверить, нужно подождать 2-4 недели. И если ничего не случится, это не будет гарантией, что всё исправлено. Я бы предпочёл для начала способ гарантированно вызывать утечку в иксах. Например, предложенный мной выше многократный запуск mplayer-а не помог.

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

но ты так не переживай! может после обвновления — поправят что-нибудь :-)

Лет через 10.

dnf83
()

Такие же симптомы, но у меня не 15Гб, а 2. Своп есть, он так же забит иксами. Воспроизводится примерно так: пользуюсь фф несколько дней, вижу, что своп и память забиты, закрываю фф - своп (2Гб) занят процентов на 30, память - процентов на 20. Перезапускаю иксы - все ок. Если вовремя не закрыть фф, oomkiller его сам прикончит.

winlook38 ★★
()

блоб nvidia в этом плане выгодно отличается - с ним иксы заметно текут только из-за суспенда

когда я сменил видяху на пассивную GT630 и стал оставлять комп включенным постоянно, иксы уже вторую неделю держатся на отметке в 120 Мб, а раньше было после 3-4 суспендов получить 500-700 Мб иксов - обычное дело

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

Если вовремя не закрыть фф, oomkiller его сам прикончит.

У меня строго наоборот — фаерфокс с тысячами вкладок жрёт много, но предсказуем, а иксы могут неделями вести себя правильно, а потом внезапно назанимать столько памяти, что их убьют.

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

закрытый драйвер 15.1.

В твоем ОП-посте есть ответ.

1. Попробуй опенсорсные

2. Смени видеокарту и блоб

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

Какие эффекты?

Отключил когда-то всё, до чего дотянулся. Как проверить, что ничего не пропустил?

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

у меня была подобная проблема когда ядро неправильно сконфигурировал. при больших нагрузках, примерно через десять минут, падала производительность, озу (и своп) съедались моментально, проц отчаяно жрался Х-сами до 300-400% судя по conky, начинал отчаянно скрипеть винт (даже когда своп не подключал). долго вобщем возился, потом решил пересобрать ядро - и вуаля, всё нормализовалось.

sprutos ★★★
()

Поскольку с виду не очевидно кто виноват и что делать, я бы начал с темы на гентушном форуме.

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

Поскольку с виду не очевидно кто виноват и что делать, я бы начал с темы на гентушном форуме.

Давно уже. Но за сутки всего 1 ответ. И тот от невнимательно читавшего тему.

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)
Ответ на: комментарий от sprutos

у меня была подобная проблема когда ядро неправильно сконфигурировал. при больших нагрузках, примерно через десять минут, падала производительность, озу (и своп) съедались моментально, проц отчаяно жрался Х-сами до 300-400% судя по conky, начинал отчаянно скрипеть винт (даже когда своп не подключал).

Оно! Только большая нагрузка ненадолго, а сжирание памяти и скрежет диска проявляются минут через 10-30.

долго вобщем возился, потом решил пересобрать ядро - и вуаля, всё нормализовалось.

А какие опции были виновны, установить не удалось?

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

Обнаружил, что команда

for fil in {1..30} ; do (mplayer Big_Buck_Bunny_small.ogv &); sleep 10; done; killall mplayer
заставляет иксы отъесть много десятков мегабайт. Чем больше фильмов запускается, чем больше их разрешение, чем больше пауза в sleep, тем больше отъедает. После прибивания mplayer-ов память не возвращается.

Не знаю то ли это, что в стартовом посте. но уже удалось повесить систему с той же конфигурацией ядра и с другой, но с закрытым драйвером видео. С открытым поэкспериментирую завтра.

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

опции не отследил, я и включил кое-что и выключил. подозреваю, что это в меню процессор и дженерал (главные ядренные кишки, ни столько дрова).

вот мой текущий конф http://pastebin.com/X08jY9A6, подкорректируешь под себя. еще можешь какое-нибудь готовое ядро нужной версии потестить, из лайф-сд или из другого дистра.

sprutos ★★★
()

проверь на открытых дравах, у невидии была похожая проблема, правда очень давно

anonymous
()

Наконец нашёл простой способ вызывать утечки. Одновременное открытие окон GPicView сверх 2 отъедает и не возвращает около 385K на каждое окно, начиная с третьего.

for f in {1..10000}; do echo $f; gpicview image1.jpg & gpicview image2.jpg & gpicview image3.jpg & gpicview image4.jpg & sleep 1; killall gpicview; done
По данным xrestop на каждое окно gpicview Pxm mem = 393K. Интересно, связь есть?

question4 ★★★★★
() автор топика
Последнее исправление: question4 (всего исправлений: 1)

Посмотри на эту тему. У меня тоже иксы внезапно отжирали память, оказалось, баг не в них, а в кривых руках разработчиков KDE-панели, которая не освобождала память. Может у тебя что-то похожее.

Утечка памяти в иксах из-за psi

shell-script ★★★★★
()
Последнее исправление: shell-script (всего исправлений: 1)
Ответ на: комментарий от anonymous

проверь на открытых дравах, у невидии была похожая проблема, правда очень давно

Проверил. На открытых не воспроизводится. Что делать, если нужны закрытые?

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

Поставь открытый драйвер да посмотри

Не воспроизводится. Что дальше?

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

Попробуй опенсорсные

Помогло. Но они не дружат с Вайном. Что дальше?

question4 ★★★★★
() автор топика
Ответ на: комментарий от shell-script

Посмотри на эту тему. У меня тоже иксы внезапно отжирали память, оказалось, баг не в них, а в кривых руках разработчиков KDE-панели, которая не освобождала память. Может у тебя что-то похожее.

Утечка памяти в иксах из-за psi

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

question4 ★★★★★
() автор топика
Ответ на: комментарий от shell-script

Про драйвер я проглядел.

Не проглядел, я про него только что добавил :)

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

На Gnome 3 память так же течёт?

Не могу проверить. Он тянет systemd, который хочет снести к чёрту мою системную конфигурацию.

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