Освобождение оперативной памяти от буферов

В начале success-story:

srv # virsh --connect qemu:///system 
Добро пожаловать в virsh — интерактивный терминал виртуализации.
 
Введите  «help» для получения справки по командам
         «quit», чтобы завершить работу и выйти.
 
virsh # edit VM007
 
XML-конфигурация домена VM007 не изменилась.
 
virsh # start VM007
ошибка: Не удалось запустить домен VM007
ошибка: внутренняя ошибка: process exited while connecting to monitor: ioctl(KVM_CREATE_VM) failed: 12 Cannot allocate memory
2019-02-24T17:13:53.061647Z qemu-system-x86_64: failed to initialize KVM: Cannot allocate memory
 
virsh # start VM007
Домен VM007 был успешно запущен

Т.е. видно, что изначально либвирт пожаловался на нехватку памяти под виртуалку, но со второй попытки виртуалка запустилась.

Во втором терминале между этими попытками было выполнено:

srv /kvm # free 
              total        used        free      shared  buff/cache   available
Mem:       65995988    42246392      469704        1532    23279892    23111068
Swap:       1689596           0     1689596
srv /kvm # sync; echo 1 > /proc/sys/vm/drop_caches 
srv /kvm # free 
              total        used        free      shared  buff/cache   available
Mem:       65995988    42254228    23473300        1532      268460    23174592
Swap:       1689596           0     1689596

Первый запуск free показывает, что available ~23Гб, но почти вся она занята под буфера и кеш. Чтобы высвободить эту память говорим заклинание.

sync – сбрасывает системный буфер.

Как указано в едрёной документации, запись в /proc/sys/vm/drop_caches производит очистку кеша без убийства процессов.

Можно записать три значения:

  • 1 — очистка page cache (т.е. образы дисковых блоков данных в памяти)
  • 2 — очистка dentries и inodes (т.е., грубо, информация о файлах и директориях)
  • 3 — очистка page cache, dentries и inodes

На продакшене категорически не рекомендуется выполнять «echo 3 …»


sys/освобождение_оперативной_памяти_от_буферов.txt · Последние изменения: 2019-02-25 01:25 — Andrew A. Sabitov