LINUX.ORG.RU

Постоянно растет swap / вирт. память (Продолжение)

 , , ,


0

2

Господа, продолжаю старую тему со swap

Краткое содержание предыдущей серии: Есть убунта с 8Gb свопа:

[nuf@nuf-MS-7527 tmp]$ uname -a
Linux nuf-MS-7527 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:51:22 UTC 2012 i686 i686 i386 GNU/Linux

На которой медленно но верно заполняется swap, после чего система дохнет. Толстых процессов на первый взгляд нет:

Mem:   2052240k total,  1880924k used,   171316k free,    63924k buffers
Swap:  7205884k total,  5857592k used,  1348292k free,  1328972k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
17562 nuf       20   0  617m 162m  32m S    2  8.1   1:15.86 firefox            
30919 nuf       20   0  320m  55m  33m S    0  2.7   0:12.66 update-manager     
16431 nuf       20   0  265m  35m  20m S    0  1.8   0:05.40 pidgin             
 9883 root      20   0  315m  21m 6380 S    4  1.1 551:25.82 Xorg               
11098 nuf       20   0  367m  19m 2820 S    1  1.0  29:16.98 dropbox            
11097 nuf       20   0  348m  18m 1348 S    0  0.9   2:25.62 xfce4-volumed      
30916 nuf       20   0 36336  14m 8176 S    0  0.7   0:00.30 backend_helper.    
....         

По вашему совету - исследовал потребление памяти через /proc/XXXX/smaps:

[nuf@nuf-MS-7527 tmp]$ sudo cat /proc/*/smaps | perl -nae 'if ($F[0] =~ /^([a-z]+):/i) { $h{$1}+=$F[1] } END { print "$_ => $h{$_}\n" for sort { $h{$a} <=> $h{$b} } keys %h }'
AnonHugePages => 0
Locked => 32
MMUPageSize => 67432
KernelPageSize => 67432
Swap => 142264
Anonymous => 330312
Pss => 420077
Referenced => 577144
Rss => 589924
Size => 7058708

Из чего можно сделать вывод, что swap на самом деле не сильно используется. Растет Size - как я понимаю это объем вирт. памяти, но видно, что на swap он не отмаплен..

Так вот, когд размер Size доходит до пресловутых 8Gb - система начинает тормозить, попутно убивая толстые процессы:

Out of memory: kill process 4217 (firefox) score 185030 or a child

Вопрос: чего блин делать ? надоело раз в неделю ребутать то..

Ответ на: комментарий от anonymous

Сейчас так:

[nuf@nuf-MS-7527 tmp]$ sysctl -a 2>/dev/null | grep swap
vm.swappiness = 60
[nuf@nuf-MS-7527 tmp]$ sysctl -a 2>/dev/null | grep overcom
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
vm.nr_overcommit_hugepages = 0

swapiness пробовал менять - ставил 10 и 1 - эффекта никакого.

sir_nuf_nuf ()

зачем свап 8 гиг? нельзя делать такой большой свап, пусть лучше оом киллер начинает мочить раньше чем система уйдет в анабиоз. 512м хватит за глаза.

дальше. если кто-то течет, то это должно быть видно в top. либо вы нас обманываете, предоставляя фальшивый вывод top, либо одно из двух.

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

Привет, кэп!

Когда был 1G свопа - все текло точно также, только до OOM доходило за 1 день, а сейчас за неделю - хотя бы работать можно. Вот разбираюсь в чем причина.

если кто-то течет, то это должно быть видно в top

Вывод top я прислал. В прошлом топике есть полный.

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

Привет, кэп!

а простой перезапуск фф помогает?

redixin ★★★★ ()

1. Попробуй файрфокс выключить (killall firefox -9) и покажи выхлопы.
2. Если не поможет, перезагрузи Х-сервер, ctrl+alt+f1, логин-пароль,

sudo /etc/init.d/xdm restart

(не знаю что в убунте, пробуй xdm/gdm/что_то где есть *dm)

Вопрос: чего блин делать ? надоело раз в неделю ребутать то..

У меня компьютер загружается максимум 30 секунд.
Делаешь скрипт (~/start), пишешь туда все что тебе нужно при старте, делаешь его автостарт, при загрузке он сам запускает все нужное мне, к примеру браузер, сервер плеера mocp, раскладки клавиатуры, снижает до минимума частоту процессора, стартует xbindkeys, до недавнего времени убирал громкость динамиков ноутбука на минимум, но с новой версией ядра это уже не работает (или мне лень разбираться), запускает ktorrent

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

1. Перезагрузка FF и других тяжелый софтин ни к чему не приводит. Ну т.е. процесс конечно исчезает, но потребление Swap не уменьшается.

2. Поубивать все процессы начиная с xdm (или что тут) - попробую.

3. Ребутать - не вариант. Это одна из причин по которй я использую linux - здесь проблемы можно решить берез переустановки OS =)

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

Перезагрузка FF и других тяжелый софтин ни к чему не приводит. Ну т.е. процесс конечно исчезает, но потребление Swap не уменьшается.

Странно конечно, но если действительно так продолжай завершать процессы пока не найдёшь искомый. Чудес не бывает.

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

У меня 10 Гб своп при 2 Гб оперативки, куча tmpfs и ничего. Расположение свопа в начале диска гарантирует самый быстрый доступ.

P.S.

Кстати течь может и ядро.

glibych ★★ ()

Я, наверное, знаю, в чем дело. У вас наверняка tmpfs, и он заполняется. Tmpfs не отражается во free, создавая иллюзию, что оперативка есть, но ее нет, и это заставляет своп расти все больше и больше. Это только предположение, т.к. с таким же сталкивался.

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

Получится типа этого:

[kiv@kiv-notebook ~]$ df -h | grep tmpfs
tmpfs              1,9G         644K  1,9G            1% /dev/shm
tmpfs              1,9G            0  1,9G            0% /sys/fs/cgroup
tmpfs              1,9G          28K  1,9G            1% /tmp

Первая и третья цифра не очень важны, а вот вторая (644К, 0, 28К) интересна. Если там будет большое значение (несколько сотен МБ), то надо смотреть на последнюю часть - кто-то забивает этот каталог, который вынесен на tmpfs мусором. Либо разбираться с забиванием, либо переносить с tmpfs обратно на диск, правда если забивание ничем не ограниченно, то и он может когда-нибудь кончится (скажем, через несколько месяцев).

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

Ну по сути явно что то течет.

Попробуй дополнительно к swapiness выставить

vm.overcommit_memory = 2
vm.overcommit_ratio = 100

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

У меня 10 Гб своп при 2 Гб оперативки, куча tmpfs и ничего. Расположение свопа в начале диска гарантирует самый быстрый доступ.

запустите процесс который ест на 2 гига больше чем есть озу, и попробуйте выйти из этой ситуации без ребута.

Кстати течь может и ядро.

у остальных миллиона пользователей этой же версии убунты оно не течет, а у нашего поциента оно течет

redixin ★★★★ ()
Ответ на: комментарий от KivApple
[nuf@nuf-MS-7527 tmp]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       142G   21G  115G  16% /
udev            995M  4.0K  995M   1% /dev
tmpfs           401M  852K  400M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none           1003M  340K 1002M   1% /run/shm
[nuf@nuf-MS-7527 tmp]$
sir_nuf_nuf ()
Ответ на: комментарий от sir_nuf_nuf

Вроде нормально. А когда будет опять сжираться много памяти всё равно никаких изменений в df -h?

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

df -h читает список файловых систем из /etc/mtab. У вас он файл или ссылка на /proc и не указыны ли в /proc/mounts ещё какие файловые системы, допустим debugfs?

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