LINUX.ORG.RU

Безвести пропавшая память и высокий пинг


0

1

здравствуйте, вчера вечером после работы, ноут (pavilion dv7-6001) вел себя странно все висело аудациус переодически тормозил картинка экрана в стопор впадала top показал что буфер под завязку заполнен всей памятью (6гб) свободно буквально 40 метров было... аптайм 27 часов... все это время стояла непрерывная торрент-раздача (Transmission 2.05)... OS Ubuntu 10.10 x64 - kernel 2.6.35-30-generic. Вырубил торрент ребутнул лаптоп все нормализовалось гиг памяти занят пять свободно, спустя 3 часа работы было уже 1.8 гигов забито в буфер, врубил торрент и пошел спать, с утра снова 40 метров свободно остальная память в буфере... аптайм 14 часов. тем же вечером заметил что пинг с днс серверами провайдера нереальный до 6к поднимался, с утра пинг от 500 до 3000, пинг с модемом так же ненормальный 200-400, на ноуте еще стоит семерка зашел под ней пинг стабильный 50-60 с днс, и как положено-низкий с модемом, захожу обратно в убунту пинг огромный, вырубаю вай фай подкидываю провод по проводам пинг хороший как надо с модемом и 50-60 с днс... недумаю что эти 2 проблемы (память и пинг) как то связаны, просто изложил все как было... буду благодарен если направите на путь истинный, куда и что копать вообще. если что выложить надо говорите я покажу. Куда девается память и как решить вопрос с пингом?


Вообще ничего страшного в том, что память занята буфером, нет (http://linuxatemyram.com/).
Но низкая отзывчивость системы - это ненормально.
Поставьте htop, включите в нём показ kernel threads и процессов других пользователей и посмотрите, что именно съедает память/процессор.

AITap ★★★★★ ()

http://www.linuxatemyram.com/

Буфер и кэш должны занимать всю свободную память, от этого работа быстрее. Но если приложениям понадобится ещё память, буфер и кэш потеснятся.

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

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.10.0 * 255.255.255.0 U 2 0 0 eth1 link-local * 255.255.0.0 U 1000 0 0 eth1 default 192.168.10.1 0.0.0.0 UG 0 0 0 eth1

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

>включите в нём показ kernel threads

Кстати, у меня почему-то напротив ядерных процессов память на нуле. Но где-то она течёт, потому что после загрузки занято 20 MiB с кучкой демонов, а после сборки чего-то может стать занято 60 MiB. Сумма памяти пользовательских процессов меньше, чем занято всего, а ядерные процессы судя по htop ничего не занимают. Что может течь и как узнать, сколько занимают ядерные процессы?

gentoo_root ★★★★★ ()
Ответ на: комментарий от gentoo_root
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.10.0    *               255.255.255.0   U     2      0        0 eth1
link-local      *               255.255.0.0     U     1000   0        0 eth1
default         192.168.10.1    0.0.0.0         UG    0      0        0 eth1
quas ()
Ответ на: комментарий от quas

Таблица, вроде бы, правильная. Сейчас пинги нормально идут? Надо будет проверить, не изменилась ли она, когда пинги опять будут тормозить. Насторожить должны несколько маршрутов default, пропадание первого маршрута в этой таблице и добавление новых с большим приоритетом.

gentoo_root ★★★★★ ()

каким то магическим образом пинг сам собой стабилизировался... всетаки хотелось бы разобраться, что произошло... в связи с чем это было?!

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

> у меня почему-то напротив ядерных процессов память на нуле
У меня тоже, так что анализировать имеет смысл только потребление процессора (например, у меня при большой нагрузке на wi-fi весь процессор сжирает irq/17-b43).

Что может течь и как узнать, сколько занимают ядерные процессы?

Модули могут течь (недавно видел тред про fglrx, reiserfs и про то, как rmmod освободил несколько десятков мегабайт). Как определять это, не знаю. Может быть, lsmod?

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

> Но где-то она течёт, потому что после загрузки занято 20 MiB с кучкой демонов, а после сборки чего-то может стать занято 60 MiB.
Есть X, nvidia?

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

>Может быть, lsmod?

Точно, там же размер есть. Но они, вроде, маленькие, 150 KiB занимает драйвер беспроводной сетевой карты, 250 KiB — ipv6 (хоть я и не пользуюсь, надо как-то выпилить) и сетевые всякие iptables'ы тоже по чуть-чуть. fglrx и reiserfs не пользуюсь. И модули не должны же течь после сборки пакета. Наверное, течёт что-то другое ядерное.

Жаль, что lsmod не показывает те модули, что в ядро вкомпилены. BTW, ещё плохо то, что не видно, что занимает столько места в bzImage, потому что собираю я ядро — а оно аж 3 MiB весит (сжатие LZO), и непонятно, что в том ядре так много занимает.

И да, такие утечки у меня есть на всех компьютерах, но на роутере, кажется, нет. И ещё там как-то отключён дисковый кэш. Интересно, как они это сделали?

gentoo_root ★★★★★ ()

> OS Ubuntu 10.10

Неудивительно. В top можно было и посмотреть, какая программа больше всех памяти сожрала. Это называется утечки памяти.

Что касается пинга. Может, в Windows и в Linux введены разные DNS-серверы? Попробуй такой: 8.8.8.8

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

>Есть X, nvidia?

Есть система, собранная с USE="-*", без иксов. Видеокарта intel. Всё равно течёт. Течёт после запуска и отработки процессов, особенно чувствуется после сборки чего-то, потому что там порождается много процессов.

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

У меня так часто поступает aMule, хотя у меня не Ubuntu. Решил использованием aMuled вместо него

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

Даже если программа показывает, что свободно 1% памяти, это неправда. Свободно может быть 60% памяти, просто последние запускаемые программы оставляют данные в памяти на случай, если ещё пригодится. Если пригодится другое - всё затирается. В Linux Format читал в 2007 году.

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

> Свободно может быть 60% памяти, просто последние запускаемые программы оставляют данные в памяти на случай, если ещё пригодится. Если пригодится другое - всё затирается.
Это кеш. Мы про free -m | grep '\-/\+'

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

Спасибо, кэп, я знаю про дисковый кэш и буферы. Занятую память я смотрел без них (вторая строка free или индикатор в htop).

Судя по всему, у меня течёт какой-то ядерный процесс после многократного запуска и отработки других процессов (например, сборка чего, gcc многократно запускается). Но какой — не понятно. Странно, что это на всех моих гентокомпьютерах (на дебиане не проверял), а на роутере без кэша (как-то они его выключили, не знаю, как) утечки, кажется, нет.

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

> Судя по всему, у меня течёт какой-то ядерный процесс после многократного запуска и отработки других процессов
Так у всех.(на gentoo, archlinux, debian etc)

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

> Но почему?
ХЗ.

Какой процесс?

от bash`а с vim`ом до firefox`а.

Зачем ему память?

ХЗ, но free -m | grep '\-/\+' до firefox и после - это небольшая разница.

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

>от bash`а с vim`ом до firefox`а.

Firefox нету, и сумма памяти процессов в ring3 меньше, чем занято всего, значит, память занята каким-то ядерным процессом.

ХЗ, но free -m | grep '\-/\+' до firefox и после - это небольшая разница.

Я имею в виду, что я, допустим, загрузился, занято 20 MiB. Запустил emerge, занято 120 MiB. emerge отработал и вышел, но занято уже 60 MiB, а не 20. Другие процессы остались те же, памяти кушают столько же (сумма занятой памяти всех процессов равна 20 MiB, но free показывает 60 MiB). Значит, потёк ядерный процесс. Но какой и почему — не понятно.

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

> Я имею в виду, что я, допустим, загрузился, занято 20 MiB. Запустил emerge, занято 120 MiB. emerge отработал и вышел, но занято уже 60 MiB, а не 20. Другие процессы остались те же, памяти кушают столько же (сумма занятой памяти всех процессов равна 20 MiB, но free показывает 60 MiB). Значит, потёк ядерный процесс. Но какой и почему — не понятно.
Как я и сказал, новых приложений не пускал/они не шуршали и память не требовали, а значение увеличилось.

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

ifconfig

eth0      Link encap:Ethernet  HWaddr 2c:27:d7:ac:b9:63  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:45 Base address:0x2000 

eth1      Link encap:Ethernet  HWaddr 40:2c:f4:06:21:67  
          inet addr:192.168.10.130  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::422c:f4ff:fe06:2167/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:403 errors:0 dropped:0

eth0      Link encap:Ethernet  HWaddr 2c:27:d7:ac:b9:63  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:45 Base address:0x2000 

eth1      Link encap:Ethernet  HWaddr 40:2c:f4:06:21:67  
          inet addr:192.168.10.130  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::422c:f4ff:fe06:2167/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:403 errors:0 dropped:0 overruns:0 frame:2488
          TX packets:467 errors:15 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:139984 (139.9 KB)  TX bytes:75999 (75.9 KB)
          Interrupt:17 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:720 (720.0 B)  TX bytes:720 (720.0 B)

iptables-save пустой, ниче невыводит

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

Состояние памяти лучше изучать не через free, а через «cat /proc/meminfo», там может быть понятнее, куда она девается. Ещё есть команда slabtop.

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

>Состояние памяти лучше изучать не через free, а через «cat /proc/meminfo», там может быть понятнее, куда она девается.

Спасибо, посмотрю туда, когда дойду до той системы, где утечку наиболее чётко видно (без иксов и лишних программ). Но такой вопрос: в /proc/meminfo ни одно число не совпадает с числом занятой памяти во free. Какие именно значения из /proc/meminfo надо сложить, чтобы получить занятую память?

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

Не знаю, насчёт не совпадает. У меня там в начале идёт MemTotal, MemFree, Buffers, Cached. Один в один с выводом free. А потом идёт всякое другое, в том числе Slab, который входит, ЕМНИП, в Buffers, и показывает, сколько ядро забрало для хранения своих структур.

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

>У меня там в начале идёт MemTotal, MemFree

А, ну логично, можно вычесть MemTotal-MemFree. Я думал, там есть отдельное поле для этой разности.

сколько ядро забрало для хранения своих структур.

Какие именно поля этому соответствуют? (кроме KernelStack)

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

первый фрагмент это я опечалася и неполностью копирнул)) не стал поправлять... второй это просто ifconfig! да localhost & 127.0.0.1 работают

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

>Поле Slab

Ого, там 42 метра на одном компе и 24 на другом.

команда slabtop показывает его подробно.

Спасибо, посмотрю. Но как же тогда:

в том числе Slab, который входит, ЕМНИП, в Buffers

Если это то, что у меня течёт, то оно у меня в буферы не входит. Да и на компьютере с 42 метрами в slab free показывает 30 метров в буферах, поэтому по размеру не может входить в буферы.

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

Посмотрел в slabtop, там больше всего (17 MiB) занял ext4_inode_cache. Значит, видимо, ничего не течёт, а это тоже кэш. Только интересно, почему free показывает эту память даже в ‘-/+ buffers/cache’, если это кэш.

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

Не знаю, описания как нужно складывать числа из /proc/meminfo я не видел. Да ещё от версии ядра там разное кол-во полей.

Может slab относится не в buffers, а в cache, а может в новых ядрах это не так.

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

>Может slab относится не в buffers, а в cache

Пофиг, free показывает во второй строке и без буфера, и без кэша, поэтому slab — не буфер и не кэш, если это вообще он течёт.

А нельзя ли чем-нибудь посмотреть, сколько занимают процессы ядра по одному? htop показывает нули.

gentoo_root ★★★★★ ()

похоже проблема с пингом была решена отключением power manager у сетевой карты

sudo iwconfig eth1 power off
и сразу же стабилизировался пинг

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

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

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