Как увеличить размер свопа?

17

Недавно я добавил больше памяти на свой сервер, и теперь у меня есть 24 ГБ ОЗУ. Изначально я настроил ОС на размер подкачки 2 ГБ.

/dev/sdc1               1         281     2257101   82  Linux swap / Solaris
/dev/sdc2   *         282       60801   486126900   83  Linux

В настоящее время для подкачки выделено 2 ГБ, но, похоже, это немного. Для системы с 24 ГБ я думаю выделить как минимум 10 ГБ подкачки.

Мои вопросы: могу ли я сделать это во время работы ОС? Нужно ли переустанавливать? Я использую OpenSuse 11.3

Икс-мэн, человек-Икс
источник

Ответы:

23

Вы решили создать отдельный раздел подкачки после установки. Вы не можете изменить его размер в сети - даже автономное изменение размера займет значительное время и несет потенциальный риск повреждения вашей последующей файловой системы в / dev / sdc2.

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

Общая процедура добавления раздела / файла подкачки:

  • создайте новый раздел типа 82h или новый файл размером 8 ГБ, используя dd if=/dev/zero of=/swapfile bs=1M count=8192
  • инициализировать его с помощью mkswap /swapfileилиmkswap /dev/sdXX
  • используйте swapon /swapfileилиswapon /dev/sdXX соответственно, чтобы включить новое пространство подкачки на лету
  • добавьте запись в / etc / fstab, чтобы убедиться, что ваше новое пространство подкачки активируется после перезагрузки

Ваш текущий раздел подкачки остается в использовании, вы можете избавиться от него ради уменьшения сложности. Просто используйте, swapoff /dev/sdc1чтобы отключить его использование на данный момент и удалить ссылку в/etc/fstab

заместитель Wabbit
источник
@ synticon-dj спасибо. данные на диске, где находится своп, имеют решающее значение, и у меня есть другой диск, который я могу использовать. Как вы думаете, установка другого диска в качестве подкачки повлияет на производительность? Должен ли я заменить / dev / sdc1?
X-Man
Это повлияет на это так или иначе - если / dev / sdc2 видит много использования, этот ввод-вывод конкурирует с вводом-выводом подкачки. Если вы добавляете в качестве раздела подкачки другой раздел диска, вы просто добавляете нагрузку ввода-вывода подкачки на этот диск. То, что будет полезно для производительности подкачки, неизбежно пагубно для вашего другого ввода-вывода на уязвимом диске. Тем не менее, ничто не так плохо для производительности вашей системы, как большое количество запросов pageout / pagein. Если вы видите это, исправьте это, добавив память или уменьшив объем памяти вашей системы.
the-wabbit
наличие двух устройств подкачки на разных шпинделях повысит вашу производительность подкачки (поскольку есть два диска, к которым можно обращаться одновременно, а не один для чтения и записи). Но поскольку вы все равно не должны видеть высокую активность ввода-вывода из-за перестановки, вы можете предпочесть использовать только одно устройство / раздел / файл для упрощения администрирования
the-wabbit
1
Обратите внимание, что файл подкачки не будет работать, если вы используете BtrFS. Два обходных пути: (1) сделать устройство с обратной связью или (2) использовать btrfs-swapon .
Косой
@ the-wabbit Как на самом деле создать /etc/fstabзапись, чтобы убедиться, что новый своп активируется при перезагрузке?
SIGSTACKFAULT
3

Вам понадобится своп в этом случае? Я не знаю, что у вас работает в вашей системной системе, но я стараюсь иметь достаточно памяти на своих серверах, чтобы избежать полной перестановки ... (у меня она есть, но только в качестве отказоустойчивой, если мой сервер начинает подкачку, я покупаю больше памяти ...)

аналитический
источник
Я здесь на вашей стороне, swap в основном используется для предотвращения сбоев в случае (энергозависимого) исчерпания памяти, и как только вы начинаете ударять по пластинам, ваш сервер принимает хитрый ввод-вывод и / или полосу пропускания, хотя SSD могут помочь они по крайней мере в 10 раз медленнее, чем оперативная память, которая в настоящее время действительно дешево. Цены на DDR3 ECC 1333 составляет около $ 1000 за 64GB (8x8GB)
Shadok
2

Вы должны перераспределить диск. Если я хорошо помню, перенос начального раздела Linux не поддерживается в parted, но вы также можете сжать файловую систему и раздел linux, а затем сделать новый обмен в конце вашего диска. Вы не можете сделать это, пока система находится в сети.

Альтернативное решение - использовать большой файл как своп. (Не знаю, хорошая ли это идея сегодня.)

Камень
источник
Не каждая файловая система может быть сокращена, даже в автономном режиме. К сожалению, это влияет на популярные варианты, такие как XFS ( xfs.org/index.php/Shrinking_Support ).
Свен
@ Стоун это значит переустановка ОС?
X-Man
Нет. Это означает создание резервных копий :), загрузку LiveCD, сжатие файловой системы linux, затем раздела sdc2 и новый обмен в конце диска и перезагрузка системы.
Камень
0

1 Отключите все процессы обмена

sudo swapoff -a

2 Изменить размер свопа

sudo dd if=/dev/zero of=/swapfile bs=1G count=8

if = input file
of = output file
bs = block size
count = multiplier of blocks

3 Сделайте файл пригодным для использования как своп

sudo mkswap /swapfile

4 Активируйте файл подкачки

sudo swapon /swapfile

5 Проверьте количество доступных свопов

grep SwapTotal /proc/meminfo
Рябченко Александр
источник