Чи можете у вас занадто багато своп?


16

Мені було просто цікаво, чи можна мати занадто великий розділ для заміни. Якщо так, то коли розділ swap занадто великий? Які недоліки / негативні наслідки наявності занадто великого розміну розділу (навіть якщо у мене є достатньо місця на диску)?

Якщо ні, то які переваги мати більше, ніж рекомендований обмінний простір?


5
Очевидним недоліком є ​​те, що ви витрачаєте місце на диску. OTOH: якщо у вас "занадто багато" заміни (скажімо, 30 Гб в системі 4 ГБ), недобросовісні програми отримають поза пам'яттю набагато пізніше, і це сповільнить вашу систему. Програми, що ведуть себе належним чином (без витоків пам'яті), просто не використовуватимуть його. (Зізнаюся, це спрощений погляд.)
PerlDuck

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

Я знаю, тож якщо у вас достатньо оперативної пам’яті, крім використання занадто великої кількості дискового простору, є якісь мінуси? За винятком інших програм "недоброзичливо", як сказав PerlDuck.
An0n

1
VTD Усі запитання в редагуванні виправдовують зміну причини закриття з дубліката на поза тему як занадто широкого. ОП, очевидно, змішаний, але мета чи чат - це краще місце для обговорення.
WinEunuuchs2Unix

3
Якщо люди не впевнені в тому, про що говорять @PerlDuck (і Panther), зверніть увагу, що навіть якщо у вас фактично необмежений дисковий простір, маючи більше місця для обміну, ви зможете зробити процеси, які слід просто припинити, і які в іншому випадку були б швидко автоматично припиняється, спочатку сповільнюйте систему до повного сканування . Коментар PerlDuck, я думаю, також би працював як відповідь. Якщо ми закінчимо повторно відкрити це запитання, можливо, можна додати відповідь про недоліки, які мають набагато більше свопів, ніж потрібно. Тому що є недоліки.
Елія Каган

Відповіді:


8

Ні

На перший погляд, ви не можете мати занадто багато свопів, оскільки ви можете бачити swap як спосіб збільшити оперативну пам'ять. Насправді вона не збільшує оперативну пам’ять, вона просто прикидається: Якщо у вас 8 ГБ реальної оперативної пам’яті та місцями обміну, скажімо, 24 ГБ, то ваші програми можуть виділяти та використовувати до 8 + 24 = 32 ГБ пам’яті. що спочатку добре звучить.

Але

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

Врешті-решт - коли місце для заміни вичерпано - деякі програми зіткнуться із ситуацією поза пам'яттю та будуть вбиті OOM_Killer ядра .

З вікі :

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

Висновок

Отже, один недолік наявності занадто великої кількості місця для обміну: чим більше у вас є, тим пізніше ця ситуація з OOM виникає і тим довше вам доведеться страждати від відсталої та невідповідної системи.

Ще одним очевидним недоліком, звичайно, є витрата місця на диску, але це може бути не так важливо в наші дні.


+1 для розгляду крайової справи. Особисто я не є великим шанувальником свопів, оскільки сплячка для ведмедів, і мої системи для цього занадто зайняті. ;-) Привіт.
Старійшина Гік

@ElderGeek LOL Насправді Елія Каган змусив мене перетворити простий коментар у відповідь. Він переконав мене, що вищезгаданий мінус занадто великої кількості свопів є важливою справою і може бути важливим для інших. Я з вами і трохи налаштований своп (2 ГБ з 8 ГБ ОЗУ), і це майже ніколи не торкається.
PerlDuck

У мене були подібні результати з аналогічними налаштуваннями, я б хотів, щоб слух 2x swap нарешті помер.
Старійшина Гек

5

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

Єдиним недоліком «занадто багато» місця для обміну є те, що ви не можете використовувати цей простір для зберігання.


1
@ An0n: Я думаю, що це було б досить великим недоліком, щоб виділити всі ~ 6 ТБ, які зараз підключені до моєї машини, як місця для обміну. Куди б я поклав всю свою музику…?
Девід Фоерстер

2
@ An0n: Що корисного для комп'ютера, якщо все, що він може зробити, це завантажувати, а потім не зберігати корисних даних? Це більше схоже на дорогий обігрівач.
Девід Фоерстер

1
@ An0n: Звичайно, я вважав, що стільки, але ви пропускаєте суть. Я думаю, що ми можемо погодитись, що для того, щоб комп’ютер був корисним, він повинен мати змогу досягти зручного стану системи (включаючи можливість завантаження) та мати доступ до сховища, яке користувач може використовувати для своїх особистих даних. Це вимагає, щоб він не був зайнятий місцями для заміни.
Девід Фоерстер

2
Звичайно, це відносно. Так само, як "занадто багато" є відносним. Якщо у мене є завантажувальна система і я виділяю весь вільний простір як swap-простір, то мені це вже не корисно через відсутність вільного місця, поки я не зміню його конфігурацію системи таким чином, що закінчується більше вільного місця. У цьому сенсі простір підкачки був би "надто" протягом цього часу робить систему марною протягом цього часу. У всякому разі, я не тут, щоб сперечатися з вами семантикою слів.
Девід Фоерстер

1
@ An0n Щоб підкреслити точку тут, своп простір - це простір, який ви не можете використовувати ні для чого іншого. Місце для зберігання диска коштує грошей. Якщо ваш дисковий простір обмежений (у мене всього 32 ГБ), ви хочете зберегти якнайбільше його кількості, щоб встановити програми та записати файли з вашими речами, як музика. Люди, як правило, намагаються звести мінімум своп з цієї причини, і ніяких інших причин немає. Swap - це те, що може знадобитися для ефективної роботи системи, інакше для користувача це не має ніякого значення. Загалом, ми хочемо, щоб наша система використовувала лише необхідні ресурси, і залишала нам багато з чим грати.
Занна

4

Ви не відчуєте жодних інших недоліків, окрім менше місця на своєму диску, я вважаю, що в наш час концепція в 2 рази перевищує кількість барана в більшості систем. Зазвичай я рекомендую використовувати однаковий розмір вашого оперативної пам’яті для обміну пам'яттю на ноутбуках, хоча для того, щоб дати вам можливість перезимувати ваш ПК, не втрачаючи жодних даних через мінливу природу оперативної пам’яті.

Єдиний випадок, коли я міг би використати більше, ніж 1x розмір оперативної пам’яті для розділу swap, - це коли ви думаєте, що збираєтесь оновити розмір оперативної пам’яті за короткий час. Або якщо ви плануєте використовувати систему, де ви будете зберігати в своєрідному кеші об'єм пам'яті, використаний програмами, які не використовуються в той самий момент.

Сподіваюся, моя думка була достатньо чіткою, і повторююсь, я не думаю, що у вас виникне якась проблема через занадто багато пам'яті.

Гарного дня!


2
Я взагалі не використовую swap, якщо RAM> 2-4 Gb на одному робочому столі користувача.
Пантера

1
@Panther Чому ні? І справа не в тому, як і коли ви ним користуєтеся. Це стосується розміру та використання.
An0n


@ElderGeek Привіт, ні, я не вважав це. Мені подобається ваша відповідь, я не знав про проблему витоку пам'яті!
zurg

2

Скільки SWAP дійсно потребує сплячка?

Помилкове уявлення про те, що вам потрібно RAM x 2 для розміру SWAP, коли ви використовуєте сплячий режим. Розмір підкачки повинен бути розміром використовуваної ОЗУ, не встановленої ОЗУ . Зазвичай розмір swap повинен бути 2/5-ї встановленої оперативної пам’яті. Щоб дізнатись мінімальний об'єм оперативної пам'яті, необхідний для використання:

$ cat /sys/power/image_size
3153907712

На цій машині 8 Гб оперативної пам’яті потрібно мінімум 3 ГБ для сну.

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

Довідка: https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate


16 Мб оперативної пам’яті в 1995 році, різні правила для 16 ГБ оперативної пам’яті в 2018 році

У дні, коли у вас було 16 Мб оперативної пам’яті, х 2 на 32 Мбайт підміняли на жорсткому диску 720 МБ сенс. Трохи історії оперативної пам’яті та жорсткого диска в цій статті про Washington Post 1995 року .

Через 23 роки деякі технічні статті з того 1995 року (хоча я не знайшов жодної) можуть виявити введення в оману нових користувачів. Однак я знайшов статтю 2007 року, в якій рекомендував SWAP = RAM x 2 .

Ще в 1995 році 32 Мб заміни HDD на 760 МБ склало 4% від жорсткого диска. Дійсно, розділ swap, можливо, багато використовувався в 1995 році. Сьогодні в 2018 році 16 ГБ оперативної пам’яті x 2 за 32 ГБ SWAP на вашому SSD 256 ГБ не має такого сенсу, як він займає 13% SSD. Сьогодні мій роздільний 8-футовий SWAP-розділ взагалі не використовується, якщо я не змушу його заповнити його при тестуванні OOM-Killer: Google Chrome займе мою пам’ять до того моменту, коли він змусить мій комп'ютер замерзнути. Що я можу зробити, щоб цього не допустити? .


+1 для вказування на хибне уявлення про правило, яке часто рекламується 2x, яке є загальною нарізкою.
Старійшина Гік

@ElderGeek Дякую Я додав розділ історії про те, коли 16 Мб оперативної пам’яті 2 рази для 32 МБ SWAP, можливо, мав сенс.
WinEunuuchs2Unix

Ще одна річ, яку слід врахувати, це SSD проти HDD. Чи хочемо ми багато читати / писати на SSD, приводячи швидше до відмови в тій частині SSD (чи це міф)? У моїй системі 32 ГБ оперативної пам’яті я використовував 2 Гб Велоцираптор Драйв для SWAP, але не маючи наміру перезимувати, все ще не впевнений, що це нормально, можливо, я міг би не міняти місцями ??? Але якби я впадав у сплячку, можливо, 4 Гб вистачило б, але ймовірно, я б використовував 20 Гб браузера, і тоді 4 ГБ було б недостатньо ???
NZ Dev

@NZDev У мене є своп на SSD, але він рідко використовується. Востаннє я перевіряв, що після 1 року використання все ще залишилося 100% життя. Щоб побачити відсоток життя, що залишився: askubuntu.com/questions/1038701/how-do-i-check-system-health/…
WinEunuuchs2Unix

1

Що таке SWAP:

Простір обміну в Linux використовується, коли обсяг фізичної пам'яті (ОЗУ) заповнений. Якщо системі потрібно більше ресурсів пам’яті, а оперативна пам’ять заповнена, неактивні сторінки пам'яті переміщуються до місця обміну. Незважаючи на те, що простір підкачки може допомогти машинам з невеликою кількістю оперативної пам’яті, це не слід вважати заміною більшої кількості ОЗУ. Простір для обміну розміщено на жорстких дисках, які мають більш повільний час доступу, ніж фізична пам'ять.

Простір swap може бути виділеним розділом swap (рекомендується), файлом swap або комбінацією розділів swap та файлів swap.

Заміна повинна дорівнювати 2x фізичній оперативній пам'яті.


Переваги:

Забезпечує переповнений простір, коли пам'ять заповнюється повністю. Може переміщувати рідко потрібні предмети далеко від швидкодіючої пам’яті Дозволяє перезимувати.

Недоліки:

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


Коли SWAP-розділи "Не допомагайте", як у "Не гідні порівняння із додатковим сховищем":

Якщо ваш Harddrive має лише 5400 об / хв, а у вас мало оперативної пам'яті, ви можете сказати> 2 Гб. Чому? Оскільки система постійно хотіла отримати доступ до розділу SWAP, вона з часом стане дуже повільною. Незважаючи на те, що тепер у вас є місце в пам'яті, все в розділі SWAP потрібно перемістити назад. Оскільки система буде працювати повільно, виділення залишиться в розділі SWAP. Це можна виправити лише за допомогою перезавантаження. Це все одно займе час, оскільки системі потрібно видалити все з розділу SWAP перед тим, як вимкнутись.


** Висновок: **

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

Якщо ви просто хочете невеликий приріст продуктивності (і у вас є щонайменше жорсткий диск 7200 об / хв), тоді ви можете додати розділ SWAP, якщо хочете, але це не потрібно, якщо у вас менше 4 ГБ встановленої пам'яті. Розмір цього може бути як завгодно. Однак я рекомендую 2x ОЗУ як точну точку. ЯКЩО у вас є місця для зберігання.

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



Моя думка:

Однак у будь-якому випадку, якщо ви використовуєте Ubuntu як основну ОС для щоденного використання, я рекомендую розмір ОЗУ в 2 рази. Тому що ви не встановлюєте Ubuntu лише тому, що у вас старий комп'ютер. Але тому, що ви хочете використовувати систему як свою основну ОС.

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

Ви можете краще мати трохи додаткового простору, SWAP, швидкість, потужність, а не занадто короткий або потребувати зміни розміру в подальшому. Оскільки вам потрібен SWAP або місця, придбали оперативну пам’ять? Або потрібно швидко купувати оперативної пам'яті, оскільки зламався один слот пам'яті або палиця.


Re: ваш Висновок Це просто не має сенсу, або інший спосіб його поставити - це те, де ми проведемо межу. наприклад, оперативна пам’ять 8 ГБ плюс 16 Гб своп: Що робити, якщо я використовую 8 ГБ оперативної пам’яті та 9 ГБ свопу, тоді ще не вистачає місця для сну. То що дає? Іншими словами, незалежно від того, якого розміру ви робите, ви все одно можете використовувати його все більше. Так чому файл Swap не надає 2 виділених пробілів 1 як віртуальної пам’яті, а інший як простір зі сну, який був би сумою або іншим 2. Він просто не підходить для мене, і ніхто ніколи не відповідав на це питання.
NZ Dev

0

Дійсно, є, але дуже маленький; для кожної "сторінки" на диску є лічильник посилань, і є кілька структур, пов'язаних з кожною областю своп; це в пам'яті ядра, тому його не можна підкачати. Це від 2 до 16 Мб кожні 4 Гб, залежно від архітектури. Решта досить динамічна, тому залежить від використання.

Таким чином, ви можете мати багато, але майте на увазі, що простір адресного простору накладений накладний об'єм оперативної пам’яті, і, крім того, відбувається деяке відстеження для розмінених сторінок, тому він не дуже масштабується; навіть якщо накладати досить якісь накладні витрати, файлові системи набагато ефективніші, ніж області підміни, якщо справа стосується великих областей, оскільки vfs може завантажувати структурну інформацію на диск (як правило, принаймні таблиці сторінок не можуть бути замінені через обмеження обладнання, і vmm, ймовірно, використовує пам'ять, яку не можна міняти, для всього, що ведеться на обліку)

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

Заміна, як правило, останній ресурс (сплячка вбік), тому вам, мабуть, не вигідно мати більше місця для обміну, ніж оперативної пам’яті, особливо якщо у вас більше 4 Гб оперативної пам’яті, а іноді навіть великої, оскільки оперативної пам’яті занадто багато (думаю, 64 ГБ) .


На жаль, ваше останнє твердження / пропозиція заплутане, інакше є гарним доповненням до вищезазначеного.
NZ Dev

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