Чи не має значення об'єм області swap в системі Linux


12

Чи має значення, якщо об'єм області swap в Linux був встановлений занадто малим (скажімо, 1Gb), а основна оперативна пам'ять є 128Gb?

Чи слід завжди встановлювати розмір площі свопу вдвічі більше, ніж об'єм оперативної пам’яті?

ОНОВЛЕНО:

Привіт, дякую всім вам за відповідь на це запитання. Насправді у мене це питання, тому що ми стикалися з деякими проблемами при використанні малої кластерної системи. Проблеми розміщені тут . На наступному малюнку є деяка інформація про деякі комп'ютери цього невеликого кластера.

інформація

Це MEMTOTзагальна кількість оперативної пам’яті цієї машини, SWAPTOце загальна кількість SW AP площі цієї машини, і SWAPUSвикористана кількість SWAP площі. Як показано на малюнку, використання SWAP дійсно невелике.

Намагаючись вирішити ті проблеми, розміщені тут , ми не впевнені, чи розмір області SWAP встановлений занадто малим, що є 1Gbвідносно 128Gb, як показано на малюнку. Таким чином, у мене є це питання. Вибачте, що я не розмістив всю довідкову інформацію в оригінальній версії цього повідомлення. До цього ми також думали, що якщо об'єм оперативної пам’яті великий, ми можемо встановити об'єм SWAP малим. Ми намагалися встановити SWAP c0148як такий 16Gb, що, здається, проблема не існує (можливо, нам слід зробити такий висновок після тривалого дотримання їх статусів).

Ми не професіонали в системі Linux, і ми не могли пояснити, чому це сталося. Ймовірно, що це кластерна система, і SGE керує ресурсами кожної машини, і їй потрібно мати відносно велику кількість SWAP, оскільки ця машина може використовуватися багатьма роботами, поданими багатьма користувачами.

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


1
Якщо у вас є 128 Гбіт оперативної пам’яті, і ви починаєте мінятися - ця система, мабуть, виходить з-під контролю і мертва. Я особисто, певно, запустив би цей сервер без своп. OOMKiller повинен подбати про будь-який відвернутий процес, перш ніж вичерпається пам'ять, спричинить збій - і аварійний процес швидше буде виправлений.
Райан Гулер

1
Що було б - що? Кілька мег речей від ініта? Якась кешована пам'ять, яка буде кинута, як тільки щось насправді потребує барана? Якщо ваша машина потребує заміни пам'яті, щоб вона функціонувала, її перевантажено та її потрібно будь-коли масштабувати.
Райан Гулер

1
@Ryan Gooler: Якщо ви займаєтесь науковими моделюваннями, процес, що використовує 128 Gb або більше, не є розумним.
jamesqf


1
@RyanGooler Досить правда. Моя думка полягає в тому, що збільшення своп може дозволити програмам використовувати більше фізичного таран. Це лише кілька Мб, але це краще, ніж нічого :)
Navin,

Відповіді:


19

Ядро Linux має налаштування для контролю частоти використання свопу, виклику swappiness, описаного на /unix/88693/why-is-swappiness-set-to-60-by-default .

Зміна нуля означає, що своп буде використовуватися лише в тому випадку, якщо в системі не вистачає пам'яті. Обмінність у 100 програм змушує миттєво користуватися свопом.

Налаштуйте вашу систему так, як вам подобається, але вона має 128 ГБ оперативної пам’яті, але навряд чи вашій системі легко вичерпається пам’ять, тож обмін 2/4 ГБ може бути достатньо. Не рекомендується, але можливо, запускати систему без swap-розділу.

Я думаю, що правило області заміни бути вдвічі більшим за об’єм оперативної пам’яті застарілим і корисний лише для систем, що мають близько 1 ГБ оперативної пам’яті і завжди знаходяться на межі повного використання оперативної пам’яті.


2
Хоча встановлення swappinessзначення 0 здається логічним при великому обсязі оперативної пам’яті, можливо, краще зберегти його як значення за замовчуванням 60: http://unix.stackexchange.com/a/88820/50687 .
AL

1
Чи є якийсь графік із свопістю форми від 0 до 100 на одній осі та щось інше на іншій, щоб продемонструвати, як… свопість залежить від значення?
користувач1306322

Привіт, @jcbermu, я оновив пост, якщо зручно, будь ласка, перевір його.
видобуток

5

Я вважаю, що 2х правило великого розміру застаріло. Наші робочі станції мають 16 Гб оперативної пам’яті, ми, як правило, використовуємо лише близько 25% від них і навряд чи використовуємо понад 50%. Тому для наших цілей ми не використовуємо жодного свопу.

Оскільки ви повинні вирішити, скільки створити своп, і це теоретично, що будь-яке вибране вами число в якийсь момент буде недостатньо, то чому б не вибрати 0? Або - чому б просто не встановити більше оперативної пам’яті?

Я вважаю, що це дуже особисте рішення, що базується на тому, як буде використовуватися ваш комп’ютер та скільки оперативної пам’яті.


Привіт, @gjcamnn, дякую за відповідь. Я оновив публікацію, якщо зручно, будь ласка, перевірте її.
видобуток

0

Якщо ви не збираєтеся виконувати деякі обчислювачі, що споживають пам'ять, вам взагалі не потрібен swap (але краще мати невеликий розділ swap). Але мати swap> ram потрібно, коли ви збираєтесь використовувати suspend на диск.


Привіт, @ustp, дякую за відповідь. Я оновив публікацію, якщо зручно, будь ласка, перевірте її.
видобуток
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.