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

Свободная память – неиспользуемая память – это потраченная память впустую.

Очистка кеша и буфер в Linux

Если вы хотите очистить в системе кеш и буфер, то вы можете использовать эту цепочку команд:

free && sync && echo 3 > /proc/sys/vm/drop_caches && free
total        used        free      shared  buff/cache   available
Mem:       24729752    12590140     2704836      354028     9434776    11361684
Swap:       8388604       27592     8361012
              total        used        free      shared  buff/cache   available
Mem:       24729752    12555168    10743364      354028     1431220    11397284
Swap:       8388604       27592     8361012

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

  • Чтобы освободить pagecache:
echo 1 > /proc/sys/vm/drop_caches
  • Чтобы освободить иноды:
echo 2 > /proc/sys/vm/drop_caches
  • Чтобы освободить pagecache, dentries и inodes:
echo 3 > /proc/sys/vm/drop_caches

ПРИМЕЧАНИЕ. Вышеупомянутые команды должны выполняться от root пользователя.

Если вы пытаетесь сделать это с помощью 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
echo "echo 2 > /proc/sys/vm/drop_caches" | sudo sh
echo "echo 3 > /proc/sys/vm/drop_caches" | sudo sh

Увидеть, что находится в буферах и кеше

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

fincore

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

fincore [options] files...
Options:
 -J, --json            use JSON output format
 -b, --bytes           print sizes in bytes rather than in human readable format
 -n, --noheadings      don't print headings
 -o, --output <list>   output columns
 -r, --raw             use raw output format
 -h, --help            display this help
 -V, --version         display version

Очистка swap в Linux

первым делом смотрим сколько занимает наш swap места:

free -m
       total    used    free   shared   buff/cache  available
Mem:   24150   12258   10391      356         1500      11121
Swap:   8191      26    8191

В данном случае swap занимает 26 Мб из 8 Гб

Очистим swap следующей командой:

sudo swapoff -a && sudo swapon -a

Затем используйте команду, чтобы посмотреть освободился ли swap:

free -m
       total    used    free   shared   buff/cache  available
Mem:   24150   12258   10391      356         1500      11121
Swap:   8191       0    8191

Из вывода видно что swap теперь занимает 0 Мб.

Очищаем сетевой кеш samba

Для очистки сетевого кэша Samba воспользуемся следующей командой:

sudo net cache flush

Очистка memcached в Linux

Есть несколько путей очистить кеша memcached.

Первый – это очистка с помощью подключения через telnet. Используем следующие команды:

telnet localhost 11211
flush_all
quit
  • localhost — хост где находится memcached (можно указывать и IP-адрес хоста).
  • 11211  — порт который использует memcached.

Чтобы узнать порт и IP-адрес в терминале где установлен memcached наберите следующее:

netstat -natpl | grep "memcache[d]" 
tcp   0  0   127.0.0.1:11211   0.0.0.0:*   LISTEN   755/memcached 

или

sudo ps aux | grep memcache
memcache  755  0.0  0.2 420652 17608 ? Ssl  апр14  2:14 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid

Второй – перезапустить сервис memcached:

sudo service memcached restart

Третий – установить утилиту memcflush для очистки кешей:

Для Debian|Ubuntu

sudo apt install libmemcached-tools -y

Для CentOS|RHEL

yum install libmemcached-* -y

Теперь очищаем кеш memcached

memflush --servers=localhost:11211

[endtxt]

RSS

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 1 голос
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять