Прежде чем приступить к практике, сперва поговорим о буферизации и кэш памяти в операционных системах 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
- Тест скорости дисков в Linux
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11