Как мне узнать, когда будет использоваться пространство подкачки на нашей машине Linux?

Вы пытаетесь двигаться . , который является текущим каталогом. Вы можете удалить это, добавив -mindepthк вашей команде find. Попробуйте сначала без передачи в xargs, чтобы увидеть, получите ли вы желаемый результат.

0
01.09.2017, 19:34
3 ответа

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 довольно часто полезно в большинстве современных систем с большим объемом оперативной памяти.

1
28.01.2020, 02:33

С практической точки зрения, из-за того, как Java обрабатывает память, это сводится к следующему:

"У моего сервера 5 ГБ ОЗУ, когда он начнет подкачку?"

Тогда возникает вопрос, используете ли вы tmpfs для хранения временных файлов, поскольку это другой аспект системы, который потенциально будет использовать пространство подкачки (tmpfs обитает в обычном кэше страниц до тех пор, пока системе не потребуется больше памяти, затем он выталкивается для обмена пространством). Очень вероятно, что ваше приложение не использует это, и в этом случае вы можете предположить, что вам, вероятно, не понадобится пространство подкачки во время обычных операций (и если вы закроете свое основное приложение во время обслуживания, вам может не понадобиться пространство подкачки вообще).

Тем не менее, вы можете подумать о некоторыхна всякий случай.В частности, поскольку вы, вероятно, предпочтете сэкономить немного денег (я предполагаю, что, поскольку вы используете Amazon Linux, вы находитесь на EC2, и, таким образом, дисковое пространство стоит денег в единицу времени), я бы предложил использовать сжатую память для пространство подкачки с помощью драйвера zram (я не уверен на 100%, включает ли Amazon Linux этот драйвер, но я был бы удивлен, если бы он не был хотя бы в виде модуля).

1
28.01.2020, 02:33

Раздел подкачки также используется для перехода в режим гибернации (, т. е. приостановки на диск ). И вы можете поменять местами некоторые файлы (, заполнить новый файл подкачки нулями, используя dd, сделать его подкачкой, используя mkswap, использовать его как подкачку, используя swapon.... ).

Конечно, если на вашей машине выполняется много программ, использующих память, и если какой-то процесс неактивен, он может быть заменен свопом, что также будет использовать своп.

0
28.01.2020, 02:33

Теги

Похожие вопросы