Как Вы освобождаете буферы и кэш в системе Linux?

Насколько я знаю, VLC не изменяет объем IT. Это изменяет объем СИСТЕМЫ. Таким образом, это не ошибка, это разработано, чтобы быть тем путем.

VLC-> Объем (GNOME)-> Динамики

Клементин-> Объем (Клементин)-> Объем (GNOME)-> Динамики

328
22.06.2016, 02:28
1 ответ

Освобождение буферного кэша

Если Вы когда-нибудь хотите освободить его, можно использовать эту цепочку команд.

# free && sync && echo 3 > /proc/sys/vm/drop_caches && free

             total       used       free     shared    buffers     cached
Mem:       1018916     980832      38084          0      46924     355764
-/+ buffers/cache:     578144     440772
Swap:      2064376        128    2064248
             total       used       free     shared    buffers     cached
Mem:       1018916     685008     333908          0        224     108252
-/+ buffers/cache:     576532     442384
Swap:      2064376        128    2064248

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

  • Освободить pagecache:

    # echo 1 > /proc/sys/vm/drop_caches
    
  • Освободить dentries и inodes:

    # echo 2 > /proc/sys/vm/drop_caches
    
  • Освободить pagecache, dentries и inodes:

    # echo 3 > /proc/sys/vm/drop_caches
    

Вышеупомянутое предназначено, чтобы быть выполненным как корень. При попытке сделать их использование sudo затем необходимо будет изменить синтаксис немного на что-то как они:

$ sudo sh -c 'echo 1 >/proc/sys/vm/drop_caches'
$ sudo sh -c 'echo 2 >/proc/sys/vm/drop_caches'
$ sudo sh -c 'echo 3 >/proc/sys/vm/drop_caches'

Примечание: Существует более тайная версия вышеупомянутой команды, если Вы в это:

$ echo "echo 1 > /proc/sys/vm/drop_caches" | sudo sh

Почему изменение в синтаксисе? /bin/echo программа работает как корень, из-за sudo, но оболочка, это перенаправляет вывод эха в файл только для корня, все еще работает как Вы. Ваша текущая оболочка делает перенаправление прежде sudo запускается.

Наблюдение, что находится в буферах и кэше

Смотрите на linux-ftools если требуется проанализировать содержание буферов и кэша. Конкретно, если требуется видеть, какие файлы в настоящее время кэшируются.

fincore

С этим инструментом Вы видите, какие файлы кэшируются в рамках дать каталога.

fincore [options] files...

  --pages=false      Do not print pages
  --summarize        When comparing multiple files, print a summary report
  --only-cached      Only print stats for files that are actually in cache.

Например, /var/lib/mysql/blogindex:

root@xxxxxx:/var/lib/mysql/blogindex# fincore --pages=false --summarize --only-cached * 
stats for CLUSTER_LOG_2010_05_21.MYI: file size=93840384 , total pages=22910 , cached pages=1 , cached size=4096, cached perc=0.004365 
stats for CLUSTER_LOG_2010_05_22.MYI: file size=417792 , total pages=102 , cached pages=1 , cached size=4096, cached perc=0.980392 
stats for CLUSTER_LOG_2010_05_23.MYI: file size=826368 , total pages=201 , cached pages=1 , cached size=4096, cached perc=0.497512 
stats for CLUSTER_LOG_2010_05_24.MYI: file size=192512 , total pages=47 , cached pages=1 , cached size=4096, cached perc=2.127660 
stats for CLUSTER_LOG_2010_06_03.MYI: file size=345088 , total pages=84 , cached pages=43 , cached size=176128, cached perc=51.190476 
stats for CLUSTER_LOG_2010_06_04.MYD: file size=1478552 , total pages=360 , cached pages=97 , cached size=397312, cached perc=26.944444 
stats for CLUSTER_LOG_2010_06_04.MYI: file size=205824 , total pages=50 , cached pages=29 , cached size=118784, cached perc=58.000000 
stats for COMMENT_CONTENT_2010_06_03.MYI: file size=100051968 , total pages=24426 , cached pages=10253 , cached size=41996288, cached perc=41.975764 
stats for COMMENT_CONTENT_2010_06_04.MYD: file size=716369644 , total pages=174894 , cached pages=79821 , cached size=326946816, cached perc=45.639645 
stats for COMMENT_CONTENT_2010_06_04.MYI: file size=56832000 , total pages=13875 , cached pages=5365 , cached size=21975040, cached perc=38.666667 
stats for FEED_CONTENT_2010_06_03.MYI: file size=1001518080 , total pages=244511 , cached pages=98975 , cached size=405401600, cached perc=40.478751 
stats for FEED_CONTENT_2010_06_04.MYD: file size=9206385684 , total pages=2247652 , cached pages=1018661 , cached size=4172435456, cached perc=45.321117 
stats for FEED_CONTENT_2010_06_04.MYI: file size=638005248 , total pages=155763 , cached pages=52912 , cached size=216727552, cached perc=33.969556 
stats for FEED_CONTENT_2010_06_04.frm: file size=9840 , total pages=2 , cached pages=3 , cached size=12288, cached perc=150.000000 
stats for PERMALINK_CONTENT_2010_06_03.MYI: file size=1035290624 , total pages=252756 , cached pages=108563 , cached size=444674048, cached perc=42.951700 
stats for PERMALINK_CONTENT_2010_06_04.MYD: file size=55619712720 , total pages=13579031 , cached pages=6590322 , cached size=26993958912, cached perc=48.533080 
stats for PERMALINK_CONTENT_2010_06_04.MYI: file size=659397632 , total pages=160985 , cached pages=54304 , cached size=222429184, cached perc=33.732335 
stats for PERMALINK_CONTENT_2010_06_04.frm: file size=10156 , total pages=2 , cached pages=3 , cached size=12288, cached perc=150.000000 
---
total cached size: 32847278080

С вышеупомянутым выводом Вы видите, что существует несколько *.MYD, *.MYI, и *.frm файлы, которые в настоящее время кэшируются.

Подкачка

Если Вы хотите убрать свою подкачку, можно использовать следующие команды.

$ free
             total       used       free     shared    buffers     cached
Mem:       7987492    7298164     689328          0      30416     457936
-/+ buffers/cache:    6809812    1177680
Swap:      5963772     609452    5354320

Затем используйте эту команду для отключения подкачки:

$ swapoff -a

Можно подтвердить, что это теперь пусто:

$ free
             total       used       free     shared    buffers     cached
Mem:       7987492    7777912     209580          0      39332     489864
-/+ buffers/cache:    7248716     738776
Swap:            0          0          0

И повторно включить его:

$ swapon -a

И теперь подтвердите с free:

$ free
             total       used       free     shared    buffers     cached
Mem:       7987492    7785572     201920          0      41556     491508
-/+ buffers/cache:    7252508     734984
Swap:      5963772          0    5963772
507
27.01.2020, 19:26
  • 1
    никогда не слышал о linux-ftools после такого количества лет, хотя я знал, как отбросить кэш. Вы - действительно гуру. Спасибо за совместное использование! –  johnshen64 23.08.2013, 15:53
  • 2
    Вещи, которые Вы говорите о синхронизации, являются неправильными: согласно документу Linux, пишущий в drop_cache только очистит чистое содержание (уже синхронизировавший). Кроме того, даже если это отбрасывает не синхронизировавшие данные, говоря, что, вводя синхронизирующую команду непосредственно перед тем, как очищающийся кэш сохранил бы Ваши данные, является неправильным: существует не нулевое время между синхронизирующей командой drop_cache запись, таким образом, любые данные могли быть добавлены в это время ошибка. Здесь нет ничего атомарного. –  Congelli501 14.11.2014, 00:06
  • 3
    я получил ту информацию здесь: kernel.org/doc/Documentation/sysctl/vm.txt - "Это - неразрушающая операция и не освободит грязных объектов".. Это также говорит, что синхронизация могла использоваться для увеличения отброшенного размера кэша (для кэшей с обратной записью). –  Congelli501 14.11.2014, 07:06
  • 4
    Предпочтите "sudo sysctl vm.drop_caches=1" по "sudo sh-c 'эхо 1>," –  Raúl Salinas-Monteagudo 13.04.2015, 17:10
  • 5
    @slm мне нравится использовать tee записать как корень: echo 3 | sudo tee /proc/sys/vm/drop-caches –  pqnet 29.12.2015, 16:21

Теги

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