Я узнал, выключу ли я своп
#swapoff -a
Проблема уходит. Если у меня есть своп, когда я запрашиваю больше памяти, то linux пытается переместить кеш в своп, а затем своп заполняется, тогда linux останавливает всю операцию, а не сбрасывает кеш. Это приводит к «нехватке памяти». Но без свопа Linux знает, что у него нет надежды, кроме как сначала сбросить кеш.
Я думаю, что это ошибка в ядре Linux.
Из той ссылки, которая добавлена в вопрос, можно предположить, что:
sysctl -w vm.min_free_kbytes = 65536
помогает, для меня с 64MG я могу легко попасть в неприятности. Я работаю с запасом в 128 МГ, и когда жадный кэш достигает этого уровня, машина становится очень медленной, но в отличие от того, что не зависает. Я проверю с полем 256MG и посмотрю, будет ли улучшение или нет.