Свободная RAM исчезает - Утечка памяти?

В новой запущенной системе, free отчеты о 1.5G используемая RAM (8G RAM в целом, Ubuntu 12.04 с lightdm и плазменным рабочим столом, одно консольное запущенное окно). Наличие выполнения приложений, которое я использую, это все еще, использует не больше, чем 2G. Однако имея систему, работающую в течение нескольких дней, все больше моей свободной RAM исчезает - не обнаруживаясь в списке используемых приложений: в то время как 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

(таким образом, Вы видите, это не буферы или кэш). Сегодня это наконец законченное системой, отказывающей полностью: заканчивающийся диспетчер Windows, приложения, "зависающие в воздухе", (необрамленном) - и всплывающее окно, уведомляющее меня о "слишком многих открытых файлах". Отчеты системного журнала:

kernel: [856738.020829] VFS: file-max limit 752838 reached

Таким образом, я закрыл те приложения, которые я смог закрыть и уничтожил X Ctrl-Alt-backspace использования. X пытался подойти снова после этого с failsafeX, но не мог сделать так, поскольку он больше не мог обнаруживать свою конфигурацию. Таким образом, я переключился на консоль с помощью Ctrl-Alt-F2, получил всю информацию, о которой я мог думать (vmstat, свободный, 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.5GB освобождаемый) - для сравнения выводу после начала с нуля:

             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

File System Usage for one week Kernel / CPU usage for one week

Править: Просто добавленный два графика от моей системы контроля. Интересный видеть: каждый раз, когда существует "переход" в потреблении памяти, пики ЦП также. Просто найденный этим прямо сейчас - и это напоминает мне о другом индикаторе, указывающем X самом: Часто при возврате к моей машине и разблокировании экрана, я нашел, что что-то делающее heavvy работает над моим ЦП. Сверение top, это всегда оказывалось /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none.

Таким образом, после этого долгого объяснения, наконец мои вопросы:

  1. Каковы могли быть возможные причины?
  2. Как я могу лучше определить включенные процессы/приложения?
  3. Какие шаги могли быть сделаны для предотвращения этого поведения - короткий от перезагрузки машины все X дней?

Я работал 8.04 (Hardy) в течение приблизительно 5 лет на моей старой машине, никогда не испытав подобное (всегда время работы больше чем 100 дней, прежде, чем перезагрузить для, например, обновления ядра). Это теперь - полная новая машина с новой установкой 12,04. В случае, если это имеет значение, некоторые спецификации:

AMD A4-3400 APU с Radeon (TM) Графика HD, с помощью открытого исходного кода ati/radeon драйвер (так никакой установленный fglrx), 8 ГБ RAM, HDD WDC WD1002FAEX-0 (1 ТБ), Asus F1A75-V системная плата Evo. Ubuntu 12.04, 64-разрядная с KDE4/Plasma. Приложения обычно открываются, более или менее постоянно включают Эволюцию, Firefox, консоль (с Полуночным Командующим, работающим внутри, приблизительно 4 вкладками), и LibreOffice - плюс иногда Калибр, Gimp и Moneyplex (банковское программное обеспечение, которое я уже использую в течение почти 20 лет теперь в версии, которая сделала прекрасный на Hardy).

Править: Сегодня я нашел одного из "злых парней": плазменный рабочий стол KDE4s. Используемая память была снова до 5 ГБ, когда я сделал a killall plasma-desktop && plasma-desktop. Освобожденный выше на 1.3 ГБ RAM! 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 лайнер (я люблю оболочку и особенно колочу) для получения лучших 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 не нравится, не повредили Интернет-соединение. Каждое разъединение вызывает небольшое увеличение своих открытых файлов, но ничто поразительное. С другой стороны, кажется, что плазма также ответственна за это:

VFS usage (2 days)

Видеть отбрасывание дескрипторов файлов в конце? Это было плазменным перезапуском.

11
задан 7 July 2012 в 00:09

2 ответа

  1. Огромное количество открытых файлов - хороший признак того, что что-то идет не так. Я думаю, что это был бы системный демон KDE.

  2. Откройте консоль и запустите «top». Затем используйте < и> изменить столбец сортировки на VIRT или RES и посмотреть, какие программы используют больше всего памяти. Утечка памяти будет отображаться как сильно завышенная виртуальная память, так как после потери указателя на утечку памяти она не будет использоваться и будет заменена. Также запустите «lsof» и найдите процесс с большим количеством открытых файлов, так как это действительно утечка дескриптора файла.

  3. Отследить программу и сообщить об ошибке.

0
ответ дан 7 July 2012 в 00:09

Я думаю, это нормальное поведение системы. Скорее всего все хорошо.

Вы можете прочитать эту замечательную статью (linux съел моего барана), чтобы понять, как linux управляет вашим бараном и почему не нужно беспокоиться:

http: // www .linuxatemyram.com /

0
ответ дан 7 July 2012 в 00:09

Другие вопросы по тегам:

Похожие вопросы: