LinuxForum.Fans
Тема

Работа ОЗУ

Автор: Silencer 19 сообщений 4891 просмотров
#97539

Дело в том, что я начал замечать удивительную вещь: после окончания загрузки системы, с помощью команды free, оперативная память (далее ОП) занимает всеми процессами около 800 Мб. Далее по ходу работы системы, запуска всякого рода приложений, смен сеансов и т.д. объем загруженной ОП продолжает увеличиваться, хотя приложения закрываются, сеансы тоже (ну как обычно). В конечном итоге из 4 Гб установленной памяти остается совсем неприличное пространство ОП менее 1 Гб. Аж страшно становится. Пугаюсь, пишу reboot и вроде снова здорова. Люди добрые, подскажите, должна ли ОП сама выгружать из себя завершенные процессы, а если нет, то как это сделать. Спасибо заранее.

#97541

Cretinus
Лучше выложите сюда выводы команд в начале работы, потом с открытыми приложениями и после закрытия приложений.

#97556

step_slim

Вот окончание загрузки системы:
[console]suse_11.3@dhcppc0:~> free
total used free shared buffers cached
Mem: 4101516 995944 3105572 0 131196 554056
-/+ buffers/cache: 310692 3790824
Swap: 2103292 0 2103292[/console]

Вот немножко позапускал приложения и закрыл:
[console]suse_11.3@dhcppc0:~> free
total used free shared buffers cached
Mem: 4101516 1704212 2397304 0 324440 940548
-/+ buffers/cache: 439224 3662292
Swap: 2103292 0 2103292[/console]

#97560

Cretinus
oO Не вижу ничего страшного, собственно что Вас именно напрягает, система тормозит или ещё какие симптомы?

#97566

step_slim

Ну во-первых был запущен минимум приложений, поэтому так мало занято. А насчет тормозов?? :o Бывает при запуске сеанса секунд 10 висит и курсор мыши не двигается, а потом уже начинает грузиться сеанс.

#97589

А что показывает
[console]pstree[/console]

#97595

Denlookh

[console]suse_11.3@dhcppc0:~> pstree
init─┬─acpid
├─auditd───{auditd}
├─avahi-daemon
├─bash───tomboy───3*[{tomboy}]
├─bonobo-activati───{bonobo-activati}
├─console-kit-dae───63*[{console-kit-dae}]
├─cron
├─cupsd
├─3*[dbus-daemon]
├─2*[dbus-launch]
├─dhclient6
├─dhcpcd
├─firefox───firefox─┬─pxgconf
│ └─18*[{firefox}]
├─gconfd-2
├─gnome-keyring-d───2*[{gnome-keyring-d}]
├─gnome-screensav
├─gnome-settings-
├─gnome-terminal─┬─bash───pstree
│ ├─gnome-pty-helpe
│ └─{gnome-terminal}
├─gvfs-afc-volume───{gvfs-afc-volume}
├─gvfs-fuse-daemo───3*[{gvfs-fuse-daemo}]
├─gvfs-gdu-volume
├─gvfs-gphoto2-vo
├─gvfsd
├─gvfsd-burn
├─gvfsd-metadata
├─gvfsd-trash
├─hald─┬─hald-runner─┬─hald-addon-acpi
│ │ ├─hald-addon-cpuf
│ │ ├─hald-addon-inpu
│ │ └─hald-addon-stor
│ └─{hald}
├─kdm─┬─Xorg
│ └─kdm───gnome-session─┬─bluetooth-apple
│ ├─evolution-alarm
│ ├─gnome-do───gnome-do───4*[{gnome-do}]
│ ├─gnome-panel
│ ├─gnome-power-man
│ ├─gnome-volume-co
│ ├─gpg-agent
│ ├─gpk-update-icon
│ ├─kerneloops-appl
│ ├─metacity
│ ├─nautilus
│ ├─nm-applet
│ ├─nvidia-settings
│ ├─polkit-gnome-au
│ ├─python
│ ├─tracker-miner-f
│ ├─tracker-status-
│ ├─tracker-store
│ └─{gnome-session}
├─kerneloops
├─main-menu
├─master─┬─pickup
│ └─qmgr
├─6*[mingetty]
├─3*[mount.ntfs-3g]
├─notification-da
├─polkitd
├─rpcbind
├─rsyslogd───4*[{rsyslogd}]
├─scim-helper-man
├─2*[scim-launcher]
├─scim-panel-gtk───{scim-panel-gtk}
├─smartd
├─udevd───2*[udevd]
├─udisks-daemon─┬─udisks-daemon
│ └─{udisks-daemon}
└─upowerd
[/console]

#97596

Denlookh

[console]suse_11.3@dhcppc0:~> pstree
init─┬─acpid
├─auditd───{auditd}
├─avahi-daemon
├─bash───tomboy───3*[{tomboy}]
├─bonobo-activati───{bonobo-activati}
├─console-kit-dae───63*[{console-kit-dae}]
├─cron
├─cupsd
├─3*[dbus-daemon]
├─2*[dbus-launch]
├─dhclient6
├─dhcpcd
├─firefox───firefox─┬─pxgconf
│ └─18*[{firefox}]
├─gconfd-2
├─gnome-keyring-d───2*[{gnome-keyring-d}]
├─gnome-screensav
├─gnome-settings-
├─gnome-terminal─┬─bash───pstree
│ ├─gnome-pty-helpe
│ └─{gnome-terminal}
├─gvfs-afc-volume───{gvfs-afc-volume}
├─gvfs-fuse-daemo───3*[{gvfs-fuse-daemo}]
├─gvfs-gdu-volume
├─gvfs-gphoto2-vo
├─gvfsd
├─gvfsd-burn
├─gvfsd-metadata
├─gvfsd-trash
├─hald─┬─hald-runner─┬─hald-addon-acpi
│ │ ├─hald-addon-cpuf
│ │ ├─hald-addon-inpu
│ │ └─hald-addon-stor
│ └─{hald}
├─kdm─┬─Xorg
│ └─kdm───gnome-session─┬─bluetooth-apple
│ ├─evolution-alarm
│ ├─gnome-do───gnome-do───4*[{gnome-do}]
│ ├─gnome-panel
│ ├─gnome-power-man
│ ├─gnome-volume-co
│ ├─gpg-agent
│ ├─gpk-update-icon
│ ├─kerneloops-appl
│ ├─metacity
│ ├─nautilus
│ ├─nm-applet
│ ├─nvidia-settings
│ ├─polkit-gnome-au
│ ├─python
│ ├─tracker-miner-f
│ ├─tracker-status-
│ ├─tracker-store
│ └─{gnome-session}
├─kerneloops
├─main-menu
├─master─┬─pickup
│ └─qmgr
├─6*[mingetty]
├─3*[mount.ntfs-3g]
├─notification-da
├─polkitd
├─rpcbind
├─rsyslogd───4*[{rsyslogd}]
├─scim-helper-man
├─2*[scim-launcher]
├─scim-panel-gtk───{scim-panel-gtk}
├─smartd
├─udevd───2*[udevd]
├─udisks-daemon─┬─udisks-daemon
│ └─{udisks-daemon}
└─upowerd
[/console]

#97623

Cretinus, всё хорошо. это свойство линукса, он использует ВСЮ память для кеширования
[console]$ free
total used free shared buffers cached
Mem: 249396 239684 9712 0 36796 46076
-/+ buffers/cache: 156812 92584
Swap: 497972 107540 390432
[/console]
не обращайте внимания.

#97643

Все за что заплачено, должно работать по-полной. Нужна свободная оперативка - купите и положите в тумбочку... У меня компы от 512 до 2048 Мб, практически везде ОЗУ используется полностью, причем не тормозит ни одна из систем... Хорошо работает линукс с оперативкой, у меня сразу после перехода с win тоже был страх, что вот-вот память закончится и все жутко затормозит (по этой же причине использовал различные утилитки в win), однако ничего не тормозило - беспокойство ушло само-собой... smile

#97683

Хорошо, убедили, теперь я спокоен. Тему можно закрывать smile

#97774
Cretinus написал:
Тему можно закрывать

не нужно. Вас просто уговорили, а не убедили ;)

Тема не раскрыта. Например никто так и не сказал, ЗАЧЕМ это надо? И почему в недосистеме сделано по другому.

Ответ "зачем?" прост - при загрузке файла с HDD, ОС (любая) прежде всего грузит файл в память, и там он и остаётся лежать. Потому при работе системы память постоянно заполняется. В итоге, рано или поздно её становится очень мало, и системе приходится освобождать память от ненужных файлов. Разница с Windows всего-лишь в вопросе, сколько-же конкретно "очень мало"? В Linux это задаётся путём настройки ядра, и у меня составляет всего ~7Mb (из 243Mb). В Windows обычно несколько сотен/тысяч метров свободно.

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

Но есть и плюс у венды - если мы решили запустить какого-нибудь монстра вроде M$Word, в венде это будет быстрее - системе не требуется высвобождать сотни метров для этого монстра. В Linux'е обычно всё делается множеством маленьких утилиток, потому ему не требуется свободное место в таких количествах.

zvalex написал:
закончится и все жутко затормозит (по этой же причине использовал различные утилитки в win), однако ничего не тормозило - беспокойство ушло само-собой... smile

такое возможно, если у системы кончится память, а свопа нет. В ядре имеется специальный механизм для защиты, оно убивает самый жирный процесс в этом случае. А самым жирным обычно является X сервер. С виду это проявляется к вылету Linux'а в текстовую чёрную консоль, что конечно неприятно, но не смертельно. ИМХО проще всего выделить swap раздел, для того, что-бы система не "падала" от недостатка памяти. А недостаток обычно связан с ошибками в ПО - некоторые приложения забывают отдавать взятую память (называется "утечка памяти").

Вычислить кривой процесс поможет утилита top или htop. Обычно исправляется это обновлением программы (только надо релиз ставить.) Такое было например в старом FireFox'е, в .12ом вроде всё нормально.

#97811

Эммм... у меня после загрузки ~300-400 Мб, после uptime'а ~ 4 дня до гига не дотягивает, чятдн? smile

#97830

В Ubuntu у меня такое было. Такое впечатление что память протекает. За несколько часов всю память сжирало. Вот ставлю Arch и нет никаких проблем. Я не агитирую за арч, но надо нормальные дистры юзать. С Ubuntu такое часто, в последнее время, к сожалению случается.

#97850
newzenon написал:
Эммм... у меня после загрузки ~300-400 Мб, после uptime'а ~ 4 дня до гига не дотягивает, чятдн? smile

вы запускаете недостаточно много ресурсоёмких приложений. Попробуйте например пожать пару гигов с помощью xz -9vvv.

surf написал:
С Ubuntu такое часто, в последнее время, к сожалению случается.

так откройте (h)top, и посмотрите, ЧТО сожрало вашу память. Дело вовсе не в убунте (скорее всего).

#97860
drBatty написал:

вы запускаете недостаточно много ресурсоёмких приложений. Попробуйте например пожать пару гигов с помощью xz -9vvv.

За 4 дня туча всего запускается, конкретно xz -9vvv - не пробовал, но допустим виртуалки, всякие gimp-ы, deluge, - это обычно, но после закрытия оных, gnome + compiz + firefox + deluged + smplayer + conky ~ 600 метров...

#97865
surf написал:
Вот ставлю Arch и нет никаких проблем. Я не агитирую за арч, но надо нормальные дистры юзать.

Различные проблемы со сторонним софтом - который не поддерживает разработчик системы непосредственно(а значит не гарантирует) - это проблема системо-дистро-независимая. Очевидно что разработчики Archlinux не возьмутся поддерживать весь софт который возможно установить.
top в руки и решать проблему с софтом.

#97888
newzenon написал:
За 4 дня туча всего запускается, конкретно xz -9vvv - не пробовал, но допустим виртуалки, всякие gimp-ы, deluge, - это обычно, но после закрытия оных, gnome + compiz + firefox + deluged + smplayer + conky ~ 600 метров...

на самом деле, память в Linux распределяется для 3х целей:
1) собственно память для приложений.
2) буфера.
3) память для кеширования.

Когда вы закрыли gnome + compiz + firefox + deluged + smplayer + conky, у вас высвободилось примерно 600 метров из памяти первого типа, вот она и стала свободной. Если вы продолжите работу, у вас постепенно будет заполнятся память третьего типа, причём она займёт всё доступное место, как только вы обработаете достаточное число файлов.

Память первого типа освобождается когда вы закрываете программу, которая её использует (должна освобождаться, если программа нормальная), а память третьего типа не освобождается, даже если вы закрыли файл. Она будет освобождаться лишь в случае, если не хватает места для выделения новых блоков. Другими словами, область кеширования - это свободная память, в том смысле, что если какой-то программе нужна память, она выделяется именно из кеша.

PS: да, в программах top и htop есть сортировка (клавиши <> по умолчанию)

#97896

2 drBatty .... не не не, немного неправильно сказанул, при работе gnome + compiz + firefox + deluged + smplayer + conky = используется ~ 600 метров... smile

Войдите или зарегистрируйтесь, чтобы ответить.