Как увеличить пространство подкачки на живом сервере
В Ubuntu 14.04 файл подкачки должен быть увеличен, поскольку использование памяти и подкачки достигает 100%.
Можно ли увеличить объем подкачки на работающем производственном сервере с минимальным нарушением работы службы?
Выход из free -h
:
total used free shared buffers cached
Mem: 3.9G 3.4G 435M 24K 1.2M 7.5M
-/+ buffers/cache: 3.4G 443M
Swap: 8.0G 6.6G 1.4G
3 ответа
Я согласен с комментарием о дополнительной оперативной памяти. Отвечая на ваш вопрос: вы можете создать либо дополнительный раздел подкачки (если у вас есть дополнительное место на жестком диске), либо создать файл подкачки.
dd if=/dev/zero of=/path/to/swap_file bs=1024 count=${size_of_additional_swap}
mkswap /path/to/swap_file
swapon /path/to/swap_file
Чем больше используется своп, тем больше нагрузка на жесткий диск и тем медленнее система.
Как намекал Майкл Хэмптон в своем комментарии, вам нужно больше оперативной памяти, а не своп.
Пространство подкачки, как правило, используется только в том случае, если ваши приложения не могут поместиться в доступную оперативную память - обычно это другой шаблон использования, чем в Windows, где файл подкачки обычно используется для нечасто доступных страниц.
Если ваше пространство подкачки не находится на флэш-накопителе, то оно, вероятно, будет работать намного хуже, чем реальная память.
Однако, чтобы ответить на вопрос, вы не можете обменяться с продлением в реальном времени. Вам нужно будет размонтировать / заменить, расширить базовое хранилище, затем перемонтировать / заменить.
Забудьте о реальной поддержке ОС для динамического изменения размера: вы НЕ используете WINDOWS®!:-)
Более серьезно: вы можете увеличить размер файла подкачки во время его использования, но вам нужно будет снова запустить mkswap, что подразумевает его сначала размонтирование.
Я бы также сказал, что использование файла вместо раздела обычно увеличивает время доступа, если вы используете фрагментированную файловую систему, что делает вашу систему, вероятно, медленной, медленной.
Из-за вашего размера используемого свопа, я бы установил/proc/sys/vm/swappiness
до 100, это может снизить активность диска на фоне более высокого использования пространства подкачки.
Я не знаю, какое у вас соотношение оперативной памяти / использованного свопа; но учитывая размер используемого свопа, я подозреваю, что он слишком велик. Если это так, вам следует подумать о добавлении некоторых модулей памяти, прежде чем вы начнете получать большие задержки на вашем сервере.