Кэшированная память Занимает всю память

Я перешел на Ubuntu всего пару месяцев назад. Несколько дней назад я узнал, что система хранит кеш в памяти, которая занимает много места, и, хотя я получаю выгоду от кэшированной памяти, теперь это создает у меня проблемы.

ubuntu cached memory

Как вы можете видеть на этом рисунке, Ubuntu занимает более 50% моей оперативной памяти. Кроме того, я использую 23,3% от 11,6 ГиБ, что в основном означает, что моя система занимает более 75-80% моей памяти ...

Я много раз искал, как очистить кеш, и обнаружил, что sync; echo 1> / proc / sys / vm / drop_caches команда с привилегиями sudo может очистить его, но эта команда работала только вначале, как когда я использовал эту команду и увидел, что мой кешированный, она была сильно уменьшена. Но теперь, когда я вижу свою кешированную память после запуска, она остается такой же.

Кто-нибудь может мне помочь с этой проблемой?

P.S. Думаю, если я попытаюсь обновить свою оперативную память, это не решит эту проблему ...

10
задан 3 July 2021 в 16:23

8 ответов

Что ж, я понял свою проблему с синхронизацией ; echo 1> / proc / sys / vm / drop_caches , я где-то неправильно написал эту команду, и теперь, если я использую эту команду правильно, она очищает мою кэшированную память, поэтому моя проблема, похоже, решена, хотя на будущее есть больше ответов ссылки и для сообщества будут оценены.

0
ответ дан 28 July 2021 в 11:23

Кэшированная память фактически является свободной памятью.

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

В то же время, ядро отслеживает, какая информация кэшируется в этой свободной памяти.

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

20
ответ дан 28 July 2021 в 11:23

Откройте свой терминал (Ctrl + Alt + T) и введите команду: free -h . Вы получите следующий результат:

              total        used        free      shared  buff/cache   available
Mem:           15Gi       2.0Gi        10Gi        33Mi       2.7Gi        13Gi
Swap:          31Gi          0B        31Gi

Здесь у вас 15 ГБ общей оперативной памяти, используется 2 ГБ, 2,7 ГБ - кэш, а 10 ГБ отображается как «свободно». Но посмотрите на последний столбец: в нем 13G указано как «доступно». Это означает, что вы можете использовать 13 ГБ ОЗУ (то есть сумму свободного + кеша), несмотря на то, что только 10 ГБ отображаются как «свободные». Как указывалось в других ответах, кэш-память является временной : она назначается приложениям при необходимости точно так же, как «свободная» память; в этом отношении между этими двумя нет никакой разницы.

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

10
ответ дан 28 July 2021 в 11:23

если система занимает все пространство кэширования, я не смогу использовать оперативную память

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

Я много раз искал, как очистить кеш, и нашел эту синхронизацию; echo 1> / proc / sys / vm / drop_caches команда с привилегиями sudo может очистить его, но эта команда работала только вначале, как когда я использовал эту команду и увидел, что мой кешированный, она была сильно уменьшена. Но теперь, когда я вижу свою кешированную память после запуска, она остается такой же.

Вам нужно вручную очистить кэш, только если у вас отключена подкачка.Отключение подкачки не рекомендуется для увеличения производительности , поскольку это фактически снижает производительность системы.

В отличие от Windows, Ubuntu не дает сбоев при большой нагрузке на оперативную память из-за различий в управлении памятью. Отключение этих функций значительно снизит производительность.

Подводя итог, кэшированная ОЗУ не является используемой ОЗУ и не приводит к максимальному увеличению объема ОЗУ или снижению производительности системы, поскольку кэшированная ОЗУ автоматически удаляется по мере необходимости. И наоборот, кэшированная оперативная память увеличивает производительность, поскольку она используется по мере необходимости.

25
ответ дан 28 July 2021 в 11:23

Пожалуйста, посмотрите эту ссылку https://www.linuxatemyram.com/, автор объясняет, что то, что вы видите, это не то, что вы думаете.

0
ответ дан 28 July 2021 в 11:23

Добро пожаловать в GNU / Linux, друг!

В этом мире наши ядра не теряют оперативную память, и мы не беспокоимся о том, что оперативная память «используется», если только приложения не борются за нее с другими приложениями.

То, что вы описываете, нормально.

В идеале 100% оперативной памяти будет использоваться в системе GNU / Linux. То, что RAM-приложениям не нужно, будет использовано кэшированием диска. Разве вы не предпочли бы, чтобы дисковые операции выполнялись со скоростью ОЗУ, чем со скоростью ваших жестких дисков? Что ж, теперь вы получите это бесплатно. Наслаждайтесь и не переживайте, когда видите, что память используется кэшированием.

3
ответ дан 28 July 2021 в 11:23

Кеширование никоим образом вам не повредит!

ОЗУ не используется кешем ... оно заимствовано кешем! Это означает, что он будет возвращен для использования в тот момент, когда он вам понадобится.

Если ваше программное обеспечение запрашивает блок памяти, система переходит «здесь, пожалуйста» и выдает блок. Если там находится кеш, кешированные элементы удаляются (т.е. они больше не находятся в кеше, и при необходимости их придется снова извлечь с диска).

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

14
ответ дан 28 July 2021 в 11:23

Пустая оперативная память, используемая в качестве кэша для SSD, предназначена для ускорения работы компьютера. Если вы хотите очищать кэш каждые x минут, вы можете установить запись crontab для очистки кэша.

3
ответ дан 28 July 2021 в 11:23

Другие вопросы по тегам:

Похожие вопросы: