Чи потрібні нам ще swap-розділи на серверах?


37

Я читав це питання , але його задавали в контексті серверів, а не настільних ПК або ноутбуків.

Якщо на ноутбуці встановлена ​​хороша кількість оперативної пам’яті, скажімо, 8 Гб, чи все-таки нам потрібен обмінний простір?

Відповіді:


33

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

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

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

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


Чи справді ваш перший пункт правдивий? Ядро вбиває запущені процеси, щоб звільнити оперативну пам’ять? Чому б ядро ​​просто не використовувало дисковий простір, а не вбивало живі процеси?
Донато

4
@Donato Так, моя перша точка правдива. Якщо немає налаштованого простору підкачки (тобто диска), ядро ​​не надається вибору використовувати дисковий простір для звільнення оперативної пам'яті.
jlliagre

і що станеться, коли я закінчу пробіл? Відхиліться у випадку 1?
Зак

@Zac Так, якщо ви дійсно не вимкнули перевиконання пам'яті, тоді перший процес, який не зможе виділити пам'ять, буде пошкоджений. Зверніть увагу, що якщо у вас налаштована (значна) область простору підкачки і ви, мабуть, використовуєте її більшість, у вас, мабуть, виникнуть серйозні проблеми з продуктивністю.
jlliagre

1
@Zac Якщо ви вичерпаєте свій обмінний простір, ви, по суті, опинилися в тій же ситуації, що не маєте місця для заміни в першу чергу. Один процес або більше загинуть. Їх може обрати убивця, або просто опинитися в неправильному місці та в невідповідний час. Зазвичай, належним чином відслідковується виробнича система повинна викликати попередження, а потім реакцію адміністратора, перш ніж відбудеться виснаження заміни.
jlliagre

9

Якщо у вас є оперативна пам’ять 3 Гб або вище, Ubuntu автоматично НЕ ВИКОРИСТОВИТИ простір Swap, оскільки для ОС це більш ніж достатньо.

Тепер вам справді потрібен swap-розділ?

Відповідь, на мою думку, - так. Тому що ви не знаєте, що ви будете встановлювати чи робити в майбутньому, що може зажадати необхідності місця для обміну. Крім того, якщо ви плануєте використовувати сплячку, вам може знадобитися трохи місця для обміну. Ви фактично не повинні мати swap-розділ, але це рекомендується у випадку, якщо ви використовуєте стільки пам'яті в звичайній роботі.

Для отримання додаткової інформації про необхідність чи ні заміни, перегляньте розділ Ubuntu Swap Faq або Потрібні зміни.


Чи є у вас посилання, що підтверджує ваше перше твердження?
jlliagre

@jlliagre Погляньте на mygeekopinions.blogspot.com/2011/03/… , що призводить до askubuntu.com/questions/23676/…
Мітч

1
У заяві блогу неправильно цитується відповідь аскунбуту. Немає доказів, що user4124 є розробником Ubuntu. "Зазвичай" не буде використовувати "зовсім інше, ніж" автоматично відключиться ". Насправді Ubuntu ніколи не вимикає своп і використовуватиме його, якщо потрібно, навіть якщо у вас є 8 Гб оперативної пам’яті або більше.
jlliagre

@jlliagre Це означає, що простір підкачки є, але не використовується. Коли я встановив Xubuntu 14.04, він створив 16 Гб своп, і він ніколи не використовувався. дивіться зображення
Мітч

1
Радий, що ви виправили свою відповідь. "Не використовувати" остаточно не те саме, що "відключити". Ubuntu не вимикає своп і використовуватиме його за потреби, незалежно від розміру.
jlliagre

4

Останні 6 років або близько того я використовував настільні системи з принаймні 8 Гб оперативної пам’яті. Я не пам'ятаю жодного випадку, коли система заміняла пам'ять за звичайного використання - і я моніторить використання ресурсів досить часто з htop. Навіть у випадках, коли я керував 4 віртуальними машинами (серверами) одночасно для цілей розвитку, не відбувалося заміни.

Сказавши, що якщо запущені програми інтенсивно працюють з пам'яттю (наприклад, редагування відео, редагування зображень, маніпуляція з великою таблицею баз даних тощо), ви можете зіткнутися з ситуацією, коли у вашої системи може не вистачати пам'яті. У цьому випадку може бути бажаним мати місце для заміни. Подумайте про це як крайню мережу безпеки. А з огляду на багато терабайтну ємність сучасних систем, чого варто пару гігабайт у розділі swap? Краще будьте безпечні, ніж вибачте :-)


2

Заміняти простір - це завжди добре.

Тут я цитую посібник з вивчення сертифікації RHCSA / RHCE Майкла Джанга

Простір Swap для Linux

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

Для систем об'ємом до 2 Гб розмір місця для заміни за замовчуванням вдвічі перевищує встановлену оперативну пам’ять. Обсяг оперативної пам'яті + 2 ГБ вище 2 Гб. Але це не "жорсткі та швидкі" правила. Робочі станції з кількома ГБ оперативної пам’яті часто використовують дуже мало місця для заміни .. але воно може використовуватися частіше в системах, які не перезавантажуються місяцями одночасно або мають великий попит з боку певних служб.


1
"Linux переміщує нечасто використовувані програми та дані для обміну місцями, навіть якщо у вас є гігабайти оперативної пам'яті". Я припускаю, що тут мова йде про код і дані, завантажені в пам'ять. Якщо у вас є 8 Гб оперативної пам’яті та просто запущені звичайні додатки, чому на Землі будь-яка сторінка коду чи даних буде піддана підказками для заміни?
Тарік

1

Це залежить від того, що ви працюєте у вашій системі.

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

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


1

Якщо вам коли-небудь потрібен swap або більше місця для заміни, ви можете створити файли swap у вашій файловій системі. Звичайно, вони не підтримують сплячку, але це розумний підхід для ноутбука з SSD-накопичувачем та великою кількістю оперативної пам’яті.

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