Почему кэш в моей памяти всегда заполнен?

13

У меня 6 ГБ ОЗУ, процессор i5 2.4GHZ под управлением Ubuntu 11.10. Я разделил свой HD так, чтобы у меня был 8 ГБ подкачки.

При потоковой передаче в Интернете или открытии нескольких вкладок в Chromium у меня скоро в кеше 4 ГБ памяти. И я думаю, что это замедляет работу моего ноутбука. При потоковом воспроизведении видео через несколько минут оно действительно замедляется и спотыкается / дергается.

В чем может быть проблема? Как я могу решить это?

PS: изначально у меня было 4 ГБ, а недавно было обновлено до 6 ГБ, но я не испытал значительных изменений.

PPS: free -gв терминале печатает это:

               total       used       free     shared    buffers     cached
Mem:             5          2          3          0          0          0
-/+ buffers/cache:          1          4
Swap:            8          0          8
Тобиас
источник
Что вы подразумеваете под "RAM Cache" и как вы говорите, что он заполняется?
Сергей
Можете ли вы запустить free -g(в терминале), когда у вас возникнут проблемы, и включить вывод команды в свой вопрос.
Portablejim
На верхней панели у меня есть апплет, который графически показывает использование памяти и процессора. Когда я нажимаю на него, он говорит мне, что: «Mem: 2GB Cache 4GB»
Тобиас
1
free -gговорит, что у вас 3 ГБ свободной оперативной памяти. Память не твоя проблема!
Ams
Хорошо, большое спасибо за разъяснение этого, но, возможно, потому что в тот момент я не был в потоковом режиме онлайн? У меня только что работал хром.
Тобиас

Ответы:

13

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

Конечно, при потоковой передаче видео оно кэшируется в памяти, но для заполнения 6Gb требуется достаточно много видео! Я ожидаю, что для загрузки такого количества данных потребуется больше, чем несколько минут, и гораздо больше, чтобы вызвать проблему!

Вы уверены, что что-то еще не проблема? Скажем, охлаждение возможно? Во многих ноутбуках процессоры перегружены по сравнению с системой охлаждения. Это хорошо - он дает высокую пиковую производительность, хорош для бурного трафика, при этом сохраняя объем - но он не может поддерживать производительность долго, пока не будет вынужден вернуть тактовую частоту или таять. Видео может быть довольно интенсивным процессором, так что вы никогда не знаете?

Во всяком случае, вы должны быть в состоянии видеть из использования памяти, обменивается ли она или нет. Если это так, то это проблема программного обеспечения, и ее можно исправить. :)

военно-картографическая служба
источник
Я использую только 1,8% SWAP. Охлаждение не проблема, так как у меня есть охлаждающая подставка с двумя вентиляторами. Я знаю, что видео интенсивно использует процессор, но четырехъядерного процессора i5 2,4 ГГц и 6 ГБ ОЗУ должно быть достаточно для плавной потоковой передачи.
Тобиас
1,8% свопа подсказывают мне, что ваша проблема не в том, что у вас не хватает ОЗУ. Я согласен, пока ваш процессор не был ограничен, он должен быть в состоянии выполнить эту работу.
Ams
Хорошо, чем, возможно, это сам браузер?
Тобиас
Спасибо за ваши ответы, я постараюсь использовать другой браузер и сообщу, если проблема не исчезнет. Еще раз спасибо, вы были очень любезны и добры, я действительно ценю!
Тобиас
11

У меня та же проблема, кажется, что кэш никогда не освобождается ... Один пример был, когда я извлек репозиторий и в итоге кэш 4 ГБ

Пример:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       7425        523          0        112       4433
-/+ buffers/cache:       2879       5069
Swap:         7627          2       7625

Я выполнил приведенный ниже код (комментарии только для того, чтобы вы знали, что происходит), вы можете создать сценарий, чтобы запускать его тогда, когда вам это нужно:

# To free pagecache:
#         echo 1 > /proc/sys/vm/drop_caches
# To free dentries and inodes:
#         echo 2 > /proc/sys/vm/drop_caches
# To free pagecache, dentries and inodes:
#         echo 3 > /proc/sys/vm/drop_caches
sudo sync && sudo sysctl -w vm.drop_caches=3

После того, как я запустил код выше:

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7949       2820       5129          0          2        407
-/+ buffers/cache:       2409       5539
Swap:         7627          2       7625
Карло
источник
4
Это не проблема, так работает кеш страниц. Он будет сохранять данные в кеше как можно дольше, но автоматически освобождает их, когда увеличивается нагрузка на память от других приложений. Очистка вручную не требуется.
Цезий
5
Это может быть так, но в этом случае алгоритм не так хорош. Зачем мне более 4 ГБ кеша и начать использовать своп?
Карло
По теме мне нравится эта статья: ссылка
Карло
1
В моем текущем случае я проверяю огромный репозиторий, и все файлы кэшируются, пока он не заполняет память, как только там он начинает меняться вместо выпуска кеша ...
Карло
Раньше я интересовался разработкой ядра. Уверен, что это все еще «по замыслу». Если ядро ​​считает, что к части файла, скорее всего, снова получат доступ быстрее, чем к некоторым анонимным данным, оно поменяет местами данные анона и сохранит кэш страницы. Разумеется, принимает ли это правильное решение - это другой вопрос :)
Steve Dee
0

Я бы предложил запустить любой проводник процессов (например, системный монитор) и проверить, какой процесс занимает так много памяти. опубликуйте его здесь, и мы посмотрим, сможете ли вы его отключить.

пс. хорошо, я понял Бьюсь об заклад, его «контейнер плагинов», который растет со временем благодаря тому, как он использует память. Я думаю, потому что это порт из системы Джилл Бейтс;). Убить его не поможет (убив его, вы потеряете все анимации на каждой странице, в основном рекламу, а также видео на Youtube). Кроме того, сам Chromium любит раздувать со временем, поэтому единственный способ справиться с ним, вероятно, будет перезапускать его время от времени. Посмотрите, поможет ли это ...

Адам Крочик
источник
Действительно, когда я перезагружаю браузер, потоковая передача снова проходит гладко, но только на 10 минут. Затем я должен перезапустить браузер снова.
Тобиас
Используемые процессы: Хром 250 МБ Хром 214 МБ Хром 150 МБ, compiz 119 МБ, демон Zeitgeist 111 МБ, хром 70 МБ, exe 24% ЦП и 60 МБ, Rhythmbox 50 МБ, ubuntuone-syndaemon 26 МБ и т. Д.
Tobias
Боюсь, что ваша проблема может быть вызвана самим браузером. Подумайте о переходе на Firefox или любой другой по вашему выбору, по мнению пользователей через Интернет, Chromium потребляет примерно в 3 раза больше памяти, чем любой другой браузер «верхней линии». Попробуйте. Установите, откройте
столько
Я сделаю это Большое спасибо за предложение. всего наилучшего
Тобиас