Я установил подкачку на моем сервере БД равным нулю, но во время большой операции сортировки использованное пространство подкачки увеличивалось, даже когда кеш все еще использовал много памяти, а затем кеш увеличился, но подкачка осталась нетронутой. Для меня это не имеет смысла. Вот free -m
на данный момент:
total used free shared buffers cached
Mem: 16000 15979 20 0 24 10520
-/+ buffers/cache: 5434 10565
Swap: 6111 5478 633
Это происходит в середине большой сортировки в PostgreSQL. Проблема в том, что выгруженная память, вероятно, будет вызвана, как только сортировка закончится (это большой UPDATE
на столе, который я поместил в tmpfs), что привело к огромному замедлению, так как это будет произвольный доступ.
Сколько места вы используете в своем tmpfs?
Имейте в виду, что tmpfs поддерживается кешем и отображается в этой статистике. Таким образом, обычный совет «игнорировать кеширование и использовать строку +/-» не обязательно применим.
Фактически, tmpfs можно заменить, поэтому вполне возможно, что это что выгружается по мере увеличения реальной нагрузки на память.