Linux, как правило, старается хранить все в ОЗУ, любое начинает подкачку только тогда, когда у вас заканчивается доступная ОЗУ (, то есть общее количество ОЗУ, используемое приложениями, буферами и кэшированными файлами ). Однако время начала обмена настраивается, поэтому может варьироваться в зависимости от вашей настройки и контролируется значением swappiness
. Чтобы увидеть, какое текущее значение swappiness
установлено для запуска
cat /proc/sys/vm/swappiness
Большинство систем по умолчанию имеет значение около 60. Чем ниже значение, тем более агрессивно будет работать ядро, чтобы держать вещи внутри оперативной памяти, и установка его на 0 полностью отключит подкачку (подкачка будет использоваться для гибернации, но не будет активно использоваться во время работы. ).
Подкачка вступает в силу только тогда, когда оперативная память вашей системы почти полностью заполнена приложениями, буферами и кэшами. Это меняет то, что ядро предпочтет, когда приложение запрашивает больше оперативной памяти, либо выбрасывая данные кеша, либо записывая на диск немного менее используемой памяти. Значение подкачки управляет соотношением между ними, где 1 в основном всегда выбрасывает кеш, а 100 заставляет данные приложения подкачиваться большую часть времени.
Вы можете настроить подкачку системы на лету с помощью
sysctl vm.swappiness=10
И установите его навсегда, отредактировав /etc/sysctl.conf
, включив
vm.swappiness = 10
В вашей ситуации, когда у вас есть сервер с достаточным объемом оперативной памяти и JVM, использующей большую ее часть, вы, вероятно, не хотите много подкачивать, если вообще хотите, поэтому снижение этого значения до 10 или даже 1 может быть полезным. Понижение его до 10 довольно часто полезно в большинстве современных систем с большим объемом оперативной памяти.