Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Память не используется, а своп забит?  (Прочитано 9645 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Phlya

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Странная вещь: особо много памяти в данный момент не занято, но своп забит наполовину (8 Гб из 16 на секундочку!). Да, перед этим память использовалась очень сильно, но теперь, как видно, все нормально - своп почему-то не освободился? Никаких реальных симптомов (тормозов) не заметно (были поначалу, но пропали).

В чем фишка?
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн art1101

  • Активист
  • *
  • Сообщений: 485
  • Arch Linux
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #1 : 25 Апреля 2015, 01:30:10 »
8Гб ОЗУ и 16Гб своп? да вы щедрый) я не помню, чтобы у меня в своп хоть байт вообще записался, даже когда куча всего запущено включая ВМ с отведенными 2Гб, плюс в warthunder шпилю.
AMD FX8350/Asus M5A97 R2.0/Kingston 2x4Gb DDR3-1866/Asus nVidia GTX750TI 2048Gb (358.16)/SSD Kingston 60Gb, HDD WD640Gb, WD500Gb, WD250Gb, Sams500Gb/Samsung 245B Plus 24", Acer AL1916V 19/Archlinux

Оффлайн Phlya

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #2 : 25 Апреля 2015, 02:28:56 »
Ну, такая уж специфика работы. Все никак еще 8 Гб памяти не добавлю, хотя надо бы.

Пользователь решил продолжить мысль 25 Апреля 2015, 02:33:49:
Да, опытным путем выяснил, что дело в питоне - после его убийства все пришло в норму. Но странно, что все это дело не перенеслось в оперативку...
« Последнее редактирование: 25 Апреля 2015, 02:33:49 от Phlya »
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Phlya

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #3 : 27 Апреля 2015, 20:01:08 »
Похожая проблема снова, поэтому не создаю новую тему. Практически ничего не запущено, а занято больше 3х гигов памяти:


Где искать виновника?
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн eNdiD

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #4 : 28 Апреля 2015, 01:16:50 »
Тащемта своп начинает использоваться при загрузке памяти на 40% by default. Можно отредактировать это значение в sudo gedit /etc/sysctl.confДобавить параметр vm.swappiness=%%
Где вместо %% прописать процент остатка памяти, при котором начнет работать своп. Например, при vm.swappiness=20, своп начнет использоваться при 80% занятой памяти.

P.S. Оперативка доложна работать ;) негоже ей простаивать без дела, иначе зачем она нужна? Если есть куча простаивающей памяти -> поднимаем демон preload -> получаем профит в виде кеширования и быстрой загрузки часто запускаемых приложений. Что касается вопроса "куда уходит столько памяти?", есть отличная статья на эту тему:
http://habrahabr.ru/company/yandex/blog/250753/
« Последнее редактирование: 28 Апреля 2015, 13:35:05 от eNdiD »

Оффлайн Phlya

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #5 : 28 Апреля 2015, 09:52:16 »
Не-не, я swappiness вообще в 0 поставил, а то иначе когда я что-то такое тяжелое считаю, что случается регулярно, то капец наступает.

Я не спорю, что она должна работать, но не тогда, когда ее ничто не загружает!

А статья, кажется, для меня сложновата что-то...
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн eNdiD

  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #6 : 28 Апреля 2015, 11:10:45 »
Она не слишком сложная, просто много технических деталей. Вот, сделал небольшую выжимку:
Цитировать
Через Page Cache в Linux по умолчанию идут все операции чтения и записи. Он динамического размера, то есть именно он съест всю вашу память, если она свободна.... Как же происходит запись? Любая запись происходит на диск не сразу, а в Page Cache, и делается это практически моментально. Тут можно увидеть интересную «аномалию»: запись на диск идет намного быстрее, чем чтение. Дело в том, что при чтении (если данной странички файла в Page Cache нет) мы пойдем в диск и будем синхронно ждать ответа, а запись в свою очередь пройдет моментально в кеш.

Выделение памяти можно поделить на четыре случая: есть выделение приватной памяти и памяти, которой можем с кем-­то поделиться (share); двумя другими категорями являются разделение на анонимную память и ту, у которая связана с файлом на диске. Самые частые функции выделения памяти – это malloc и free. Если мы говорим о glibc malloc(), то он выделяет анонимную память таким интересным способом: использует heap для аллокации маленьких объемов (менее 128 KБ) и mmap() для больших объемов. Такое выделение необходимо для того, чтобы память расходовалась оптимальнее и её можно было запросто отдавать в систему.


Вообще, довольно познавательно.

Оффлайн www777

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 2777
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #7 : 28 Апреля 2015, 11:59:22 »
Цитировать
P.S. Оперативка доложна работать ;) негоже ей простаивать без дела, иначе зачем она нужна? Если есть куча простаивающей памяти -> поднимаем демон preload -> получаем профит в виде кеширования и быстрой загрузки часто запускаемых приложений. Что касается вопроса "куда уходит столько памяти?", есть отличная статья на эту тему:
http://habrahabr.ru/company/yandex/blog/250753/
Ссылка не рабочая по клику, посмотри внимательно, и исправь.

Оффлайн sergey8888

  • Активист
  • *
  • Сообщений: 628
  • Любитель Linux, пользователь Ubuntu
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #8 : 28 Апреля 2015, 12:04:55 »
Своп это же вам не оперативная память, оперативка перестает использоваться как только закрываете процесс, а своп потихоньку заполняется и очищается только перезагрузкой системы, у меня бывало тоже за пару недель своп заполнялся на 30-50%, ничего в этом необычного нет и сам по себе он не очищается ;)
« Последнее редактирование: 28 Апреля 2015, 12:08:36 от sergey8888 »

Теперь я знаю ваш IP и могу удаленно управлять вашей системой :D

Оффлайн Phlya

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #9 : 28 Апреля 2015, 13:14:34 »
Ну, нет, в целом, конечно, он очищается и без перезагрузки. Очищается, конечно, медленнее, но очищается. Сейчас вот, правда, уже часов 15 занят с точностью до нескольких байтов одинаково.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Dt-13

  • Забанен
  • Активист
  • *
  • Сообщений: 308
  • забанили за дело. Остываю...
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #10 : 28 Апреля 2015, 16:10:50 »
...очищается и без перезагрузки. Очищается, конечно, медленнее, но очищается...

# swapoff -a && swapon -a
Не остыл - в бане на вечно...

Оффлайн Phlya

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #11 : 28 Апреля 2015, 19:00:31 »
Dt-13,
А это не опасно, если там какие-то данные лежат?
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн www777

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 2777
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #12 : 28 Апреля 2015, 20:31:57 »
Dt-13,
А это не опасно, если там какие-то данные лежат?
Они буду перемещены в ОЗУ.

Оффлайн Dt-13

  • Забанен
  • Активист
  • *
  • Сообщений: 308
  • забанили за дело. Остываю...
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #13 : 28 Апреля 2015, 21:43:53 »
 :)
Dt-13,
А это не опасно, если там какие-то данные лежат?

нет не опасно. при swapoff -a - данные выгружаются в оперативку... хотя в вашем случае: озу 8, свап 16 и если он еще и заполнен под 100% будет - не знаю  :)

Пользователь решил продолжить мысль [time]29 Апрель 2015, 00:50:17[/time]:
можно порулить параметром vm.swappiness или дисковым кэшем... почитайте к примеру здесь: http://mydebianblog.blogspot.ru/2010/05/swap-swap-linux.html
« Последнее редактирование: 28 Апреля 2015, 21:51:49 от Dt-13 »
Не остыл - в бане на вечно...

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Память не используется, а своп забит?
« Ответ #14 : 28 Апреля 2015, 22:36:34 »
Я, конечно, не совсем уверен, но вроде как данные переносятся из свопа в ОЗУ только по мере использования. То есть если они перенесены в своп и не запрашиваются, то так там и висят. Оно и понятно - чего гонять туда сюда неюзанные данные.

 

Страница сгенерирована за 0.049 секунд. Запросов: 24.