Как увеличить пространство подкачки на живом сервере

В 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®!:-) Расширяя границы Windows: виртуальная память
Более серьезно: вы можете увеличить размер файла подкачки во время его использования, но вам нужно будет снова запустить mkswap, что подразумевает его сначала размонтирование.

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

Из-за вашего размера используемого свопа, я бы установил/proc/sys/vm/swappinessдо 100, это может снизить активность диска на фоне более высокого использования пространства подкачки.
Я не знаю, какое у вас соотношение оперативной памяти / использованного свопа; но учитывая размер используемого свопа, я подозреваю, что он слишком велик. Если это так, вам следует подумать о добавлении некоторых модулей памяти, прежде чем вы начнете получать большие задержки на вашем сервере.

Другие вопросы по тегам