Як збільшити розмір свопу?


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

Ви вирішили створити окремий розділ swap після встановлення. Ви не можете змінити розмір в Інтернеті - навіть офлайн розмір забирає значну кількість часу і несе потенційний ризик пошкодити вашу наступну файлову систему на / dev / sdc2.

Найпростіший варіант обійти це - створити новий розділ swap на іншому диску, який ви зараз не використовуєте (або можете дозволити собі офлайн для повторного розділення) або просто використовувати файл swap у межах існуючої файлової системи (що постачається з незначне покарання за продуктивність через накладні витрати файлової системи ).

Загальна процедура додати розділ / файл swap:

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

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


@ synticon-dj дякую. дані на диску, де обмін є важливим, і у мене є інший диск, який я можу використовувати. Як ви думаєте, встановлення іншого диска як swap вплине на продуктивність? Чи доведеться міняти місцями / dev / sdc1?
x-man

Це вплине на це так чи інакше - якщо / dev / sdc2 бачить багато користі, це введення / виведення конкурує зі свопом I / O. Якщо ви додаєте розділ іншого диска як swap, ви просто додаєте на цей диск завантаження вводу-виводу swap. Те, що буде корисним для роботи своп, неминуче згубне для вашого іншого вводу / виводу на ураженому диску. Незважаючи на це, нічого не так погано для продуктивності вашої системи, як велика кількість запитів на розсилку сторінок / сторінок. Якщо ви бачите це, виправте це, додавши пам'ять або зменшивши слід пам'яті вашої системи.
the wabbit

наявність двох пристроїв підкачки на різних шпинделях допоможе вашій роботі під час обміну (оскільки є два диски, на які можна звертатись одночасно, а не лише один, щоб прочитати та записати на них). Але як ви не бачите високої активності вводу-виводу через заміну в будь-якому випадку, ви можете скористатися лише одним пристроєм / розділом / файлом для полегшення адміністрування
wabbit

1
Зауважте, що свопфіл не працюватиме, якщо ви користуєтеся BtrFS. Два робочих кола (1) зробити пристрій для зворотного зв'язку або (2) використовувати btrfs-swapon .
Діагон

@ the-wabbit Як ​​насправді створити /etc/fstabзапис, щоб переконатися, що новий своп активується при перезавантаженні?
SIGSTACKFAULT

3

Чи знадобиться вам своп в цьому випадку? Я не знаю, що у вас працює у вашій системній системі, але я намагаюся мати достатню кількість пам’яті на своїх серверах, щоб уникнути свопінгу повністю… (у мене це є, але лише як помилка, якщо мій сервер почне мінятися, я купую більше пам'яті ...)


Я тут на вашому боці, своп використовується в основному для запобігання збоїв у разі вичерпання (мінливої) пам’яті, і як тільки ви почнете вражати плати, ваш сервер робить розумний удар вводу / виводу та / або пропускну здатність, хоча SSD можуть допомогти вони принаймні в 10 разів повільніше, ніж оперативна пам’ять, яка сьогодні є дуже дешевою. Ціни DDR3 ECC 1333MHz становлять близько 1000 доларів за 64 Гб (8x8GB)
Шадок

2

Вам доведеться переділити диск. Якщо я добре пам’ятаю, що початок розділу Linux не підтримується в розбитому режимі, але ви можете також зменшити вашу файлову систему Linux і розділ, а потім зробити ще одну заміну в кінці диска. Ви не можете цього зробити, поки система в Інтернеті.

Альтернативним рішенням є використання великого файлу як swap. (Не знаю, чи це сьогодні гарна ідея.)


Не кожна файлова система може бути скорочена, навіть в автономному режимі. На жаль, це впливає на такі популярні варіанти, як XFS ( xfs.org/index.php/Shrinking_Support ).
Свен

@Stone це означає перевстановлення ОС?
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 Зробіть файл доступним як swap

sudo mkswap /swapfile

4 Активуйте файл свопу

sudo swapon /swapfile

5 Перевірте кількість наявного свопу

grep SwapTotal /proc/meminfo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.