FastNetMon

четверг, 19 ноября 2009 г.

Почему на моем сервере вся память занята под cached?

Рассмотри гипотетический случай, когда большое количество памяти используется под кэш:

"Шапка" top:
Mem: 8193844k total, 5646272k used, 2547572k free, 288384k buffers
Swap: 4200888k total, 0k used, 4200888k free, 4446864k cached


Из этого:
288384k buffers - это буферы ядра операционной системы для обеспечения ее работоспособности
4446864k cached - дисковый кэш, иными словами, часть данных с диска при частом доступе к ним копируется в оперативную память для ускорения доступа, это очень эффективный механизм сильно снижающий нагрузку на диск.
Swap: 4200888k total, 0k used -- использование SWAP, оно должно быть нулевое, пока есть хоть какая-либо память

Но особенность памяти занятой под "Cached" в том, что как только Вашим приложениям потребуется память, она сразу будет отрезана от Cached и возвращена приложениям.

Но, к слову сказать, есть способ освободить всю эту память одним махом:
echo 3 > /proc/sys/vm/drop_caches


Очистка только страничного кэша:

echo 1 > /proc/sys/vm/drop_caches


Очистка только inode и dentry кэша:

echo 2 > /proc/sys/vm/drop_caches


Более подробно узнать, на что используется память можно вот этой командой:
cat /proc/meminfo
а вот хорошее описание всех параметров: http://www.itcommunity.ru/blogs/am/archive/2009/01/13/46080.aspx

5 комментариев :

  1. Интересная заметка, но ответа на вопрос в заголовке в ней так и нет.

    Вот есть у меня сервер на centos64 и postgres на нем. Оперативка свободна (4 из 8 GB) а swap забивается под завязку (8Gb) и сервер 1с стоящий на этом же сервере начинает отваливать клиентов.

    Нет идей куда покопать?

    ОтветитьУдалить
  2. К сожалению, без доступов сказать что-либо крайне сложно.

    ОтветитьУдалить
  3. эта тема подробно описана тут:
    http://forum.openvz.org/index.php?t=msg&th=11181

    ОтветитьУдалить
  4. Команда: sync; echo 1 > /proc/sys/vm/drop_caches
    Ответ: -bash: /proc/sys/vm/drop_caches: Permission denied

    Команда: chmod -R 777 /proc/sys/vm/drop_caches
    Ответ: chmod: changing permissions of '/proc/sys/vm/drop_caches': Operation not permitted

    Ни права не меняются, ни кэш не очищается! Как люди это делают? Или, просто, копируют одно и то же с сайтов на сайты бестолково???
    И нигде пока не нашёл решения!
    Бесполезняк полнейший!..

    ОтветитьУдалить
    Ответы
    1. Аналогично. Видимо, на VPS этот способ не работает.

      Удалить

Примечание. Отправлять комментарии могут только участники этого блога.