Основная идея здесь, вероятно, не так уж и плоха (просто очень наивна и вводит в заблуждение): могут быть файлы, которые кэшируются, и очень маловероятно, что они будут доступны в ближайшем будущем, например, файлы журналов. Они «съедают» оперативную память, которую впоследствии необходимо будет освободить при необходимости ОС тем или иным способом.
В зависимости от ваших настроек подкачки, схемы доступа к файлу, схемы распределения памяти и многих других непредсказуемых вещей, может случиться так, что если вы не освободите эти кэши, их впоследствии придется использовать повторно, что займет немного больше времени, чем выделение памяти из пула неиспользуемой памяти. В худшем случае настройки подкачки в linux вызовут выгрузку памяти программ, потому что linux считает, что эти файлы с большей вероятностью будут использоваться в ближайшем будущем, чем память программ.
В моей среде linux часто ошибается, и в начале работы большинства европейских фондовых бирж (около 09:00 по местному времени) серверы начинают делать то, что они делают, только один раз в день, требуя замены в памяти, которая ранее была заменена из-за записи лог-файлы, сжимая их, копируя их и т. д., заполняли кэш до такой степени, что все должно было быть заменено.
Но удаляет ли кэши решение этой проблемы? определенно нет. В этом случае решение заключается в том, чтобы сообщить linux то, чего он не знает: эти файлы, скорее всего, больше не будут использоваться. Это может быть сделано пишущим приложением, использующим такие вещи, как posix_fadvise()
или с помощью инструмента командной строки cmd vmtouch
(который также может использоваться для просмотра вещей, а также файлов кэша).
Таким образом, вы можете удалить ненужные данные из кешей и сохранить данные, которые должны быть кэшированы, потому что, когда вы удаляете все кэши, многие вещи должны быть перечитаны с диска. И это в самый неподходящий момент: когда это необходимо; вызывая задержки в вашем приложении, которые являются заметными и часто неприемлемыми.
То, что у вас должно быть на месте, - это система, которая отслеживает ваши шаблоны использования памяти (например, если что-то меняется), а затем анализирует и действует соответствующим образом. Решением может быть удаление некоторых больших файлов в конце дня с помощью vtouch; также может быть добавлено больше оперативной памяти, потому что ежедневная пиковая нагрузка на сервер именно это.