Недоліки відсутності розділу swap


8

Нещодавно я встановив Ubuntu 10.04 на свій ноутбук. Через обмеження місця на SSD я не встановив розділ swap для ОС, і у мене є 1,5 Гб оперативної пам’яті.

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

Чи довго можуть бути якісь недоліки відсутності розділу своп?


2
Gparted буде радий вирізати пару концертів вашого кореневого накопичувача і зробити це з легкістю та можливістю.
msw

Відповіді:


6

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

Свопфіл / swap-розділ, подібний до файлу сторінок у Windows, - це простір жорсткого диска, призначений для кращого використання пам'яті. Існує два варіанти простору підкачки.

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

  2. Коли деякі сторінки пам’яті (пам'ять поділена на «сторінки») використовувались деякий час тому, але зараз вони більше не використовуються, вони будуть перенесені на свопфайл, а решта пам’яті можна використовувати для того, щоб зробити щось інше, що може бути кориснішим ( наприклад, навіть кешування!) - коли це станеться в системі без заміни, це призведе до того, що сторінки в режимі очікування залишаться в пам'яті. Це нічого надто серйозного, оскільки ми маємо досить великий об'єм пам'яті в наші дні.

І тоді, так що тепер у нас є переліки використання розділу swapfile / swap, скільки зазвичай доцільно? - це залежить від функції машини. Якщо це настільний апарат, встановіть його на 1-1,5x пам'яті. Якщо це серверна машина, зробіть те ж саме, але зауважте, що використовується своп, якщо він широко використовується, оновіть пам’ять.

Як зазначали інші, gparted може допомогти вам вирізати кілька кілограмів простору з вашого розділу ext2 / ext3, але ви можете також використовувати swapfile:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile
swapon /swapfile

Ти повинен мати

swapfile none swap sw 0 0

, fstabщоб забезпечити його використання при кожному перезавантаженні

І ще одне: якщо ви не заперечуєте, щоб мати свобпростір, але ви хочете звести до мінімуму використання, якщо ваша пам’ять дійсно не розтягнута, ви можете змінити "заміщення" ядра, змінивши /proc/sys/vm/swappiness(значення, 0-100; за замовчуванням, 60).


Можуть використовуватися для заміни, окрім зазначених у вас, наприклад, розділ swap, який використовується для автоматичного зберігання дамп-файлу аварійного завершення. Також розмір пам’яті 1-1,5x не є загальновизнаним значенням. Теоретично, комп'ютер з більшою кількістю пам'яті потребує менше пам'яті для заміни, оскільки для нього була використана X RAM і потрібна Y більше оперативної пам’яті, можливо, вона зможе помістити цю додаткову пам’ять у наявну оперативну пам’ять замість swap.
TOOGAM

@TOOGAM це було в 2010 році, коли люди використовують на робочому столі такі речі, як 2-4 ГБ оперативної пам’яті.
bubu


3

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

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


3
Це відбудеться незалежно від того, відбувся чи ні ви своп.
Ігнасіо Васкес-Абрамс

2
Насправді ядро ​​не «почне скидати пам'ять у випадкових місцях». Швидше це зробить те, що потрібно зробити, і почне виконувати процеси, які вважаються "менш важливими", поки ситуація не покращиться. Це робить "вбивця ООМ". Дивіться, наприклад, linux-mm.org/OOM_Killer
sleske

Я стою виправлений.
Nitrodist

0

Після встановлення перевірте використання пам’яті під час виконання операцій із значною пам’яттю або просто відкриття «великих» додатків, таких як Openoffice.org, розпакування файлів тощо. Якщо ви бачите, що загальна використовувана пам'ять становить майже 1,5 ГБ, то, ймовірно, гарна ідея мати розділ підкачки або файл swap, про всяк випадок, якщо вам зручно запустити щось, що використовує багато пам’яті, і Ubuntu почне скидати важливу пам'ять, а може бути навіть частини ядра (не добре, справді не добре ...).


Мені цікаво, чи можливо змусити Linux скинути частини свого ядра, щоб звільнити пам'ять для запущених процесів?
Ігор Зінов'єв

Напевно, ні, але ви знаєте, що я маю на увазі ...
Hello71,

AFAIK, саме ядро ​​Linux завжди залишається в пам'яті. Він завантажується як перша частина завантажувальної послідовності і залишається; пам'ять ніколи не звільняється і навіть не замінюється. Ви можете, проте, завантажувати та вивантажувати модулі, і ця пам'ять буде звільнена (я вважаю), але це, як правило, лише кілька десятків кб на модуль. Ядро також підтримує різні внутрішні структури даних та буфери, можливо, може звільнити деякі з них (хоча не впевнено).
sleske

0

Не повна відповідь, але ось історія однієї речі, яка насправді напала на мене, навіть коли я думав, що я маю всі можливі недоліки під контролем:

/programming/4567972/error-executing-aapt-all-of-the-sudden Підсумовуючи, підсумовуючи, деякі інструменти, запущені з дійсно великих процесів / додатків Java, не зможуть запускатися завжди. Однак більшість постійних користувачів не стикаються з цим.

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