В новой системе free
сообщает об используемой оперативной памяти 1,5 ГБ (всего 8 ГБ ОЗУ, Ubuntu 12.04 с lightdm и плазменным рабочим столом, запущено одно окно консоли). При работающих приложениях, которые я использую, он по-прежнему потребляет не более 2G. Однако, если система работает в течение нескольких дней, все больше и больше свободной оперативной памяти исчезает - не отображается в списке используемых приложений: в то время как smem --pie=name
сообщает об использовании менее 20% (и 80% доступных), все остальное говорит иначе. free -m
например сообщает о дне 7:
total used free shared buffers cached
Mem: 7459 7013 446 0 178 997
-/+ buffers/cache: 5836 1623
Swap: 9536 296 9240
(так что вы можете видеть, что это не буферы или кеш). Сегодня это закончилось полным сбоем системы: отсутствовал менеджер окон, «зависшие в воздухе» приложения (без рамки) - и всплывающее окно, уведомляющее меня о «слишком большом количестве открытых файлов». Отчеты системного журнала:
kernel: [856738.020829] VFS: file-max limit 752838 reached
Поэтому я закрыл те приложения, которые смог закрыть, и убил X, используя Ctrl-Alt-backspace. После этого X попытался снова подойти с failsafeX, но не смог этого сделать, так как больше не мог определить свою конфигурацию. Поэтому я переключился на консоль с помощью Ctrl-Alt-F2, собрал всю информацию, которую мог придумать (vmstat, free, smem, proc/meminfo
, lsof, ps aux
), и, наконец, перезагрузился. X снова придумал failsafeX; на этот раз я сказал ему «восстановиться из резервной копии конфигурации», затем переключился на консоль и успешно использовал startx
для вызова графической среды.
Я не имею ни малейшего понятия о том, что вызывает эта проблема - хотя она должна быть связана либо с самим X, либо с некоторыми пользовательскими процессами, работающими на X - как после убийства X, вывод free -m
выглядел так:
total used free shared buffers cached
Mem: 7459 2677 4781 0 62 419
-/+ buffers/cache: 2195 5263
Swap: 9536 59 9477
(~ Освобождается 3,5 ГБ) - для сравнения с выводом после нового запуска:
total used free shared buffers cached
Mem: 7459 1483 5975 0 63 730
-/+ buffers/cache: 689 6769
Swap: 9536 0 9536
Еще два полезных вывода предоставлены memstat -u
. Незадолго до аварии:
User Count Swap USS PSS RSS
mail 1 0 200 207 616
whoopsie 1 764 740 817 2300
colord 1 3200 836 894 2156
root 62 70404 352996 382260 569920
izzy 80 177508 1465416 1519266 1851840
После того, как X убил:
User Count Swap USS PSS RSS
mail 1 0 184 188 356
izzy 1 1400 708 739 1080
whoopsie 1 848 668 826 1772
colord 1 3204 804 888 1728
root 62 54876 131708 149950 267860
И после перезапуска вернемся в X:
User Count Swap USS PSS RSS
mail 1 0 212 217 628
whoopsie 1 0 1536 1880 5096
colord 1 0 3740 4217 7936
root 54 0 148668 180911 345132
izzy 47 0 370928 437562 915056
[/g0] [/g1]
Редактировать: Просто добавил два графика из моей системы мониторинга. Интересно видеть: каждый раз, когда происходит «скачок» в потреблении памяти, пики процессора тоже. Просто нашел это прямо сейчас - и это напоминает мне еще один индикатор, указывающий на сам X: часто, возвращаясь к моей машине и разблокируя экран, я обнаруживал, что что-то делает тяжелую работу на моем процессоре. Сверяясь с top
, оно всегда оказалось /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
.
Итак, после этого длинного объяснения, наконец, мои вопросы:
Я работал 5.04 (Hardy) около 5 лет на моей старой машине, никогда не испытывая подобного (всегда более 100 дней безотказной работы, перед перезагрузкой, например, для обновления ядра). Теперь это совершенно новая машина со свежей установкой 12.04. В случае, если это имеет значение, некоторые характеристики:
AMD A4-3400 APU с HD-графикой Radeon (tm), с использованием драйвера ATI / Radeon с открытым исходным кодом (поэтому не установлено fglrx), 8 ГБ ОЗУ, WDC WD1002FAEX- 0 жестких дисков (1 ТБ), материнская плата Asus F1A75-V Evo. Ubuntu 12.04 64-bit с KDE4 / Plasma. Приложения, которые обычно открываются более или менее постоянно, включают в себя Evolution, Firefox, konsole (с работающим Midnight Commander, около 4 вкладок) и LibreOffice - плюс иногда Calibre, Gimp и Moneyplex (банковское программное обеспечение, которое я использую уже почти 20 лет, в версии, которая отлично работала на Харди).
Редактировать: Сегодня я нашел одного из «злых парней»: плазменный рабочий стол KDE4s. Используемая память снова была до 5 ГБ, когда я сделал killall plasma-desktop && plasma-desktop
. Это освободило 1,3 ГБ ОЗУ! ps
говорит:
RSS SIZE VSZ
plasma usage before restart 120988 526472 1300816
plasma usage after restart 92352 495972 1263632
Так где же эти 1,3 ГБ? Разница между этими значениями, если их сложить, составляет 96 МБ, а не 1,3 ГБ.
И это может быть только одна часть, поскольку все еще используются 3,7 ГБ (должно быть менее 2 ГБ). Я следил за этим в течение последних 6 дней, используя несколько инструментов: используемая память (не говоря о кеше и буферах) увеличивается медленно, но неуклонно. Даже если я не на своем рабочем месте, чтобы что-то запускать ...
Что касается мониторинга процессов с открытыми файлами, я в настоящее время использую следующую 1-строчку (я люблю shell и особенно bash), чтобы получить верх -5:
echo "$(for pid in $(ls -a /proc|egrep '^([0-9])*$'|sort -n 2>/dev/null); do \
if [ -e /proc/$pid/fd ]; then FHC=$(ls -l /proc/$pid/fd|wc -l); \
if [ $FHC -gt 0 ]; then PNAME="$(cat /proc/$pid/comm)"; \
echo "$FHC files opened by $pid ($PNAME)"; fi; fi; done)"|sort -r -n|head -n5
Команда в 4 строки для лучшей читаемости. Ничего особенного, кроме того, что Skype не любит разорвать интернет-соединение. Каждое отключение вызывает небольшое увеличение открытых файлов, но ничего драматического. С другой стороны, кажется, что плазма также ответственна за это:
[/g2]
Видите каплю файловых ручек в конце? Это был перезапуск плазмы.
apt-get update && apt-get upgrade
появилось обновление для plasma-desktop; эти парни быстрые X) Теперь я просто смотрю это некоторое время, чтобы увидеть, решена ли проблема, прежде чем объявить об этом. До сих пор все выглядит довольно многообещающе.
– Izzy
9 July 2012 в 14:11
lsof
, ни top
не указали мне на «злой процесс», ваше предположение относительно демона KDE указало мне в сторону нарушителя спокойствия. Так что еще раз спасибо - время безотказной работы моей машины теперь составляет около 14 дней, и все выглядит стабильно, хотя я даже параллельно запускал такие вещи, как VirtualBox, компиляция и т. Д. Поэтому я считаю это решенным и отмечаю ближайший матч :)
– Izzy
13 July 2012 в 17:47
Я думаю, что это нормальный системный поведенческий. Скорее всего, все в порядке.
Вы можете прочитать эту блестящую бумагу (linux ate my ram), чтобы понять, как Linux управляет вашим бараном и почему нет необходимости беспокоиться:
http: // www. linuxatemyram.com/
Я думаю, это нормальное поведение системы. Скорее всего все хорошо.
Вы можете прочитать эту замечательную статью (linux съел моего барана), чтобы понять, как linux управляет вашим овном и почему не нужно беспокоиться:
Я думаю, это нормальное поведение системы. Скорее всего все хорошо.
Вы можете прочитать эту замечательную статью (linux съел моего барана), чтобы понять, как linux управляет вашим бараном и почему не нужно беспокоиться:
Я думаю, это нормальное поведение системы. Скорее всего все хорошо.
Вы можете прочитать эту замечательную статью (linux съел моего барана), чтобы понять, как linux управляет вашим овном и почему не нужно беспокоиться:
Я думаю, это нормальное поведение системы. Скорее всего все хорошо.
Вы можете прочитать эту замечательную статью (linux съел моего барана), чтобы понять, как linux управляет вашим овном и почему не нужно беспокоиться:
Я думаю, это нормальное поведение системы. Скорее всего все хорошо.
Вы можете прочитать эту замечательную статью (linux съел моего барана), чтобы понять, как linux управляет вашим овном и почему не нужно беспокоиться: