1

У меня есть виртуальный сервер, и мой провайдер взимает плату за использование каждого ресурса. Я могу установить ограничение на максимальный объем ОЗУ, но я все равно взимаю плату за фактически использованную ОЗУ, а не за максимальную (цена рассчитывается каждые 5 минут на основе фактического использования).

Использование всей ОЗУ было бы нормально, но политика Linux "неиспользуемая ОЗУ тратится ОЗУ" не подходит для этого вида учета, поскольку в конечном итоге машина использует все доступную ОЗУ, и хотя большая ее часть используется только в качестве дискового кэша, Я все еще должен заплатить за это.

Мне нравится устанавливать предел у провайдера немного выше, чтобы удовлетворить пиковые потребности в оперативной памяти. Могу ли я каким-то образом ограничить объем памяти, который будет использоваться для кэширования и т.д.? Допустим, я зарезервировал 3 ГБ, и моим приложениям и системным службам обычно требуется 1 ГБ, но если в этом есть реальная необходимость, мое приложение может использовать дополнительно 2 ГБ ОЗУ, но при простое я хочу ограничить кэш-память, например, до 500 МБ свободной оперативной памяти, так что мне не нужно постоянно платить за 3 ГБ.

1 ответ1

0

В связанном ответе « Как вы очищаете буферы и Linux-систему» показано, как освободить кэш (pagecache, dentries и inode). Вы должны будете делать это освобождающее действие повторно, возможно, из cron. Я не знаю, будет ли это работать так, как вы хотите, в контейнере OpenVZ, потому что управление памятью в OpenVZ кажется сложным (или, возможно, недостаточно хорошо документировано). Я не хочу критиковать OpenVZ; Это отличное решение для виртуализации, которое может втиснуть многие системы на физический сервер.

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

Вы также можете поэкспериментировать со своппингом и установить 100 для агрессивного обмена.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .