LINUX.ORG.RU

Занятая память - помогите разобраться

 


0

1

Ради изучения этого вопроса я почитал руководство по утитилам procps, а именно top и free.

У меня что-то сожрало память на нетбуке. Иногда сам по себе начинается дикий swapping с тормозами системы. Например, при просмотре видео в mplayer без фронт-енда.

Запуск free показал мало памяти, вывод команды будет ниже.

Запустил top, увидел, что Firefox сожрал 49,7% памяти. Все остальные программы съедают максимум 1%, кроме иксов и Konqueror (открыто несколько вкладок).

Нужно объяснить, почему я показываю два лога top. Сейчас Firefox закрылся, вероятно из-за ошибки сегментирования. Когда я делал top с запущенным Firefox, я ещё не знал о сортировке по занимаемой памяти по сочетанию клавиш Shift-M, а теперь знаю, но браузер уже не запущен. Поэтому я дам два вывода команды top: первый с Pidgin, Skype и Firefox и без сортировки по памяти, второй без этих программ, но с сортировкой.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16722 zenitur   20   0 1673m 874m  15m S 43.4 49.8   2208:27 firefox
18972 zenitur   20   0  141m  44m  13m S  0.9  2.5   0:06.21 skype
16409 root      20   0  342m  97m  15m S  0.6  5.6 168:10.96 X
16887 zenitur   20   0  147m 7976 3264 R  0.1  0.4   0:38.06 konsole
 4606 zenitur   20   0  597m  27m 8988 S  0.1  1.6   2:27.84 pidgin
16652 zenitur   20   0  281m 4732 1852 S  0.1  0.3   1:10.77 kded
    1 root      20   0  3940   28    0 S  0.0  0.0   0:10.86 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.02 kthreadd
    3 root      20   0     0    0    0 S  0.0  0.0   0:08.40 ksoftirqd/0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0
    7 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 cpuset
    8 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 khelper
    9 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 netns
  130 root      20   0     0    0    0 S  0.0  0.0   0:04.20 sync_supers
  132 root      20   0     0    0    0 S  0.0  0.0   0:00.05 bdi-default
  134 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kblockd
  287 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 ata_sff

top - 01:07:12 up 12 days,  6:24,  1 user,  load average: 0.07, 0.10, 0.15
Tasks: 125 total,   2 running, 123 sleeping,   0 stopped,   0 zombie
Cpu(s):  9.1%us,  0.3%sy,  0.0%ni, 90.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1798220k total,  1556644k used,   241576k free,    58216k buffers
Swap:  2097148k total,   114540k used,  1982608k free,   873100k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16409 root      20   0  355m 152m  17m R  7.0  8.7 177:53.35 X
25983 zenitur   20   0  233m  60m  21m S  0.3  3.5   0:37.61 konqueror
16662 zenitur   20   0  161m  13m 5572 S  0.0  0.8   1:06.32 kdesktop
16664 zenitur   20   0  189m  12m 6124 S  0.0  0.7   3:25.07 kicker
16652 zenitur   20   0  283m  10m 6244 S  0.0  0.6   1:17.39 kded
16689 zenitur   20   0  183m 9968 3484 S  0.0  0.6   0:12.07 konqueror
16887 zenitur   20   0  148m 9864 3616 S  1.7  0.5   0:52.49 konsole
16679 zenitur   20   0  172m 9356 3452 S  0.0  0.5   0:02.51 konqueror
26123 zenitur   20   0  163m 7972 5676 S  0.0  0.4   0:00.08 kio_http
26127 zenitur   20   0  163m 7964 5676 S  0.0  0.4   0:00.05 kio_http
16682 zenitur   20   0  168m 7556 3452 S  0.0  0.4   0:01.67 konqueror
16660 zenitur   20   0  163m 6048 3384 S  0.0  0.3   1:50.63 kwin
26063 zenitur   20   0  156m 5536 4356 S  0.0  0.3   0:00.06 kio_http
26251 zenitur   20   0 27324 5532 4744 S  0.0  0.3   0:00.08 aspell
26041 zenitur   20   0  156m 5504 4324 S  0.0  0.3   0:00.04 kio_http
26064 zenitur   20   0  156m 5488 4312 S  0.0  0.3   0:00.04 kio_http
26093 zenitur   20   0  156m 5488 4312 S  0.0  0.3   0:00.04 kio_http

Вывод free теперь. 256 Мб свободно?! У меня же ничего не запущено!

zenitur@athlon_neo ~ $ free
             total       used       free     shared    buffers     cached
Mem:       1798220    1522324     275896          0      52832     858260
-/+ buffers/cache:     611232    1186988
Swap:      2097148     128524    1968624

Мой вопрос в следующем. Система тормозила, хотя Firefox занимал всего лишь 50% памяти - почему? Все остальные приложения занимали все понемногу, и далеко не гигабайт!

Теперь Firefox выключен - классно, ура! Можно делать всё что угодно. Но почему так мало свободной памяти? Так и должно быть? Мне кажется, что-то сожрало много-много памяти и не видно в процессах.

Возможно, это тоже может повлиять. Из-за бага в проприетарном драйвере ATi/AMD после некоторых полноэкранных игр (Braid, Heroes III) возникает следующая картина: видео, 602 Кб, скриншот, 187 Кб. Мне кажется, здесь возможна утечка памяти.

★★★★★

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

Мне кажется, что-то сожрало много-много памяти и не видно в процессах.

tmpfs проверь

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

Я изменил исходное сообщение, потому что free в начале был сделан после закрытия Firefox, а я написал что до этого.

enitur@athlon_neo ~/Downloads $ free -m
             total       used       free     shared    buffers     cached
Mem:          1756        941        814          0         12        312
-/+ buffers/cache:        616       1139
Swap:         2047         97       1950
zenitur@athlon_neo ~/Downloads $ top
top - 01:31:54 up 12 days,  6:49,  1 user,  load average: 0.03, 0.35, 0.36
Tasks: 126 total,   1 running, 125 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1798220k total,   964904k used,   833316k free,    12960k buffers
Swap:  2097148k total,   100148k used,  1997000k free,   320712k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16409 root      20   0  355m 165m  17m S  1.0  9.4 179:06.56 X
25983 zenitur   20   0  258m  66m  20m S  0.0  3.8   1:47.19 konqueror
16664 zenitur   20   0  191m  14m 6052 S  0.0  0.8   3:27.00 kicker
16662 zenitur   20   0  161m  13m 5556 S  0.0  0.8   1:06.89 kdesktop
16652 zenitur   20   0  284m   9m 5556 S  0.0  0.6   1:18.45 kded
16689 zenitur   20   0  183m 9.9m 3532 S  0.0  0.6   0:15.52 konqueror
16887 zenitur   20   0  148m 9904 3640 S  0.3  0.6   0:55.35 konsole
16679 zenitur   20   0  172m 9544 3496 S  0.0  0.5   0:02.70 konqueror
26564 zenitur   20   0  163m 7972 5676 S  0.0  0.4   0:00.08 kio_http
16682 zenitur   20   0  168m 7788 3512 S  0.0  0.4   0:01.78 konqueror
16660 zenitur   20   0  163m 5984 3312 S  0.0  0.3   1:51.64 kwin
26294 zenitur   20   0  156m 5648 4372 S  0.0  0.3   0:00.05 kio_http
26295 zenitur   20   0  156m 5568 4376 S  0.0  0.3   0:00.10 kio_http
26370 zenitur   20   0  156m 5516 4352 S  0.0  0.3   0:00.06 kio_http
26326 zenitur   20   0  156m 5512 4328 S  0.0  0.3   0:00.09 kio_http
26297 zenitur   20   0  156m 5508 4324 S  0.0  0.3   0:00.12 kio_http
26310 zenitur   20   0  156m 5504 4328 S  0.0  0.3   0:00.11 kio_http
zenitur@athlon_neo ~/Downloads $
ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Ну как бы это всё объясняет: Половину памяти сожрал FF, еще примерно половину сожрало что-то еще. FF упал, тормоза прошли.

«что-то еще» — это наверняка tmpfs, раз в процессах не видно.

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

Спасибо, теперь я понял что у меня всё хорошо. Значит, занято у меня 600 Мб, а не 1500 Мб, из них 160 Мб съели иксы. Спасибо что так быстро объяснили.

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

На будущее: используй htop вместо top. Он намного удобнее и нагляднее.

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

Спасибо что так быстро объяснили. Насчёт tmpfs - вот мой /etc/fstab, там нет tmpfs:

/dev/sda1		/		ext4		relatime,errors=remount-ro	0 1
/dev/sda2		none		swap		swap		0 0
ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

Хмм, ну может 600 метров это нормально для кед, не знаю. У меня десктоп без браузера и прочих тяжелых приложений больше 150-200 не занимает.

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

Да, я помню что у тебя мало опыта с KDE. Поэтому когда ты ответил, я подумал что ты вообще не сможешь помочь с таким выводом top, в котором кроме X все приложения из KDE.

При старте сжирало меньше. Попробую потестировать баг с ATi/AMD, замерить память до и после него, когда перезагружусь.

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

Хмм, ну может 600 метров это нормально для кед, не знаю

нормально, хотя у меня сразу после загрузки они 400 занимают

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

Ну я как бы сначала полагал, что ты под «занято много памяти» имеешь ввиду те 600 метров. Я ж не знал, что ты не знаешь, как правильно читать вывод free. :}

geekless ★★
()

По поводу последнего. Самый простой способ воспроизвести проблему - запустить tvtime и в полноэкранном режиме хоткеями попробовать увеличить/уменьшить системную громкость. С mplayer -vo xv тоже наблюдается, но реже.

Лечение: kwin --replace &

Debian testing amd64, fglrx 12.2

Появилось где-то после 11.12, точно не скажу, потому xv под amd64 починили только в 12.2

leave ★★★★★
()
29 января 2013 г.

Mem: 241576k free
Swap:114540k used

Можешь покрутить swappiness на меньшее значение, можешь попробовать zram - 0,5-1Гб оставь, остальное в своп. Используется ли UKSM?

GAMer ★★★★★
()
Последнее исправление: GAMer (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.