openSUSE 12.1 'free -m' и htop дают разные результаты

openSUSE, SUSE Linux Enterprise

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

Доброго времени суток!

Как только установил openSUSE 12.1, обратил внимание, что в htop видно очень большое потребление памяти.
Аналогично htop результаты показывают и в SystemActivity от KDE, да и в System Monitor от Gnome.
Меж тем запуск "free -m" показывает результаты которые сильно ниже.

Сразу после перезагрузки результаты почти равны, но после активного использования, htop и остальные мониторы
показывают огромное потребление памяти. При парочке программ результат был около 3 Гб,
В то время как "free -m" показывал около 700 Мб.

Кто прав и кто виноват? И почему вообще есть различие?
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

htop
snapshot2.png

free -m
snapshot1.png


Не новичковый вопрос.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение deadhead »

Dreamer77 писал(а):
08.03.2012 19:24
Не новичковый вопрос

Dreamer77 писал(а):
08.03.2012 19:04
в htop видно очень большое потребление памяти.

Dreamer77 писал(а):
08.03.2012 19:04
"free -m" показывает результаты которые сильно ниже.

какие цифры вас смущают?

P.S.

Код: Выделить всё

$cat /proc/meminfo
[x] close
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

Хорошо, если вы не знакомы с утилитой htop, приведу скриншот с другим типом отображения информации:
snapshot4.png

занято 1685 Мб
в кэше 1748 Мб (ну это не важно, пусть себе кэширует на здоровье)

Посмотрим результаты команды "free -m"
snapshot3.png

После вычетов всех кэшев и буферов имеем:
занято 920 Мб
в кэше 2366 Мб

Интересует именно это различие.

cat /proc/meminfo:
snapshot3.png
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение deadhead »

Вроде как для двух программ расчет ведется по формуле: used = MemTotal - MemFree - Buffers - Cached
однако значение cached для free явно завышено... и судя по всему, именно на беспокоящую вас величину ;-)
а что нам скажет

Код: Выделить всё

$vmstat -S m

[x] close
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

На всех опробованных дистрибутивах: gentoo, arch, debian .buntu, fedora обе программы выдают одинаковое количество потребляемой памяти.

Что и для кого завышено -- это еще вопрос.

вот результат вывода vmstat -S -m
snapshot5.png
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение deadhead »

Dreamer77 писал(а):
08.03.2012 21:53
Что и для кого завышено -- это еще вопрос.
как бэ не вопрос... ибо все они читают /proc/meminfo ;-)

Dreamer77 писал(а):
08.03.2012 21:53
На всех опробованных дистрибутивах: gentoo, arch, debian .buntu, fedora обе программы выдают одинаковое количество потребляемой памяти.
uptime тоже в два дня?
[x] close
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

и по несколько недель было.
Здесь разница есть даже сразу после загрузки системы. Пусть мегабайт 50-100 разницы, но все же она есть.
С течением времени показатель занятой памяти в htop и System Monitor только растет.

Запустить, закрыть несколько программ -- показатель htop увеличился, А free вернулся на прежнее значение.


Только что установил, и впервые запустил

Код: Выделить всё

prelink -afvmR
. И был мягко говоря поражен!
За время его выполнения показатель занятой памяти в htop снизился на 250мб, при простое системы.
Показания free остались в пределах погрешности.

UPD
время идет, htop понемногу снижет свои показатели, А free остается верен себе=)))
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

Сейчас опробовал разные варианты.
Установка пакетов через zypper привела к повышению занимаемой памяти согласно htop на 800мб,
в то время как free показал увеличение только на 50мб.
Более того, после завершения установки, free снизил показания 50мб обратно,
а вот htop все еще в плюсе на 800мб и снижать не собирается=)))
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение deadhead »

Предлагаю помониторить статистику во время ваших экспериментов:

1. htop (Memory Meters -> Text)
2. free -k -s 1
3. while : ;do sleep 1; head -n 4 /proc/meminfo; done

п. 3 является опорным

P.S.
неплохо бы

Код: Выделить всё

$htop -v
$free -V
[x] close
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

Сегодня еще раз проверку устроил.
Согласно htop использование памяти начинает расти как только zypper завершает свою работу.
Было 1350мб, во время установки пакета ibus прыгало от 1400 до 1450.
При завершении установки с 1450 до 1400 опустилось,
НО уже через сукунду стало на 100мб в секунду увеличиваться и сейчас составляет 2050мб.

Что касается free, то до начала установки было 800мб, в процессе установки было 850мб +/- 10мб (немного менялось).
При завершении установки опустилось до 800мб и на том уровне и осталось.

Код: Выделить всё

htop -v
htop 0.9 - (C) 2004-2010 Hisham Muhammad
Released under the GNU GPL.

Код: Выделить всё

free -V
procps version 3.2.8



deadhead писал(а):
10.03.2012 09:35
1. htop (Memory Meters -> Text)
2. free -k -s 1
3. while : ;do sleep 1; head -n 4 /proc/meminfo; done

так и включено
запустил тест. По ним 1 и 3 пункты выдают одинаковую статистику по закешированной памяти.
Если в 3 пункте из общей вычесть свободную и закешированную, то получится результат тот же что и в htop.
Т.е. сейчас это 2000мб занятой памяти.


Суть в том, что если просуммировать память указанную в столбце RES (т.е. включая общие библиотеки), то величина будет порядка 1100мб, что в 2 раза ниже, чем в верхней строчке.
Если просуммировать разницу между RES и SHR, то получится величина около 700мб
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

deadhead писал(а):
10.03.2012 09:35
1. htop (Memory Meters -> Text)
2. free -k -s 1
3. while : ;do sleep 1; head -n 4 /proc/meminfo; done

Запустил

Код: Выделить всё

prelink -avfmR

И по трем консолям наблюдал вывод из предложенный трех пунктов.

Как уже было сказано, 1 и 3 дают идентичные результаты:
из занятых 2000мб:
100мб было переведено в свободную (согласно пункту 3) т.е. со 150мб до 250мб,
еще 600мб было переведено в закешированную (т.е. с 1750мб до 2350мб)
Итого после операции прелинка, было ""освобождено"" 700мб,
т.е. с 2050мб до 1350мб (столько было до начала установки)

В то же время показания согласно пункту 2 были следующими:
до начала прелинка 850мб занято, 150мб свободно, 3100мб зашешировано
после окончания: 850мб занято, 250мб сводобно, 3000мб закешировано.
(в процессе выполнения, использование памяти доходило до 870мб)
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Bizdelnick »

Возможно, косяк где-то тут. Голова туго работает, чтобы вникать, на первый взгляд ошибок не нашёл...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

может это и оно. По крайней мере по коду видно что строчки по вычислению памяти и кешей подправлены.

Только вот как это соотнести с моей системой? Установить выборочное обновление для этого пакета из Factory репозитория?
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

Неделю назад переставил систему.
На этот раз вместо btrfs выбрал ext4.
В итоге разница между показаниями free и htop составляет порядка 100мб (uptime 4 дня).

Т.о. можно сделать вывод, что во всем виноваты btrfs и snapper.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

Проблема снова актуальна.
разница показателей порядка 500Мб.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение NickLion »

В openSUSE параметр cached учитывает SReclaimable, NFS_Unstable и SwapCached из /proc/meminfo. В моём случае разность обеспечивает SReclaimable.

PS извините за небольшой некропостинг
Спасибо сказали:
Аватара пользователя
Dreamer77
Сообщения: 202
ОС: Debian, openSUSE, Mac OS X

Re: openSUSE 12.1 'free -m' и htop дают разные результаты

Сообщение Dreamer77 »

NickLion
И в итоге получаем неверное значение занятой памяти через все программы кроме free.
Кажется что память вот-вот закончится, хотя все приложения закрыты.

Собственно это была одна из причин по которой ушел с openSUSE.
Хотя само по себе потребление памяти одно их лучших в линуксе.
Ubuntu-->Debian-->Gentoo-->openSUSE-> Mac OS X
Спасибо сказали:
Ответить