Резюме
Область swap (називається розділом swap, файлом swap або файлом сторінки) - це лише механізм збільшення фізичної пам'яті, адресованої ОС.
Якщо у вас мало доступної фізичної оперативної пам’яті та на сьогоднішній машині, я б сказав, якщо у вас є 4 Гб або менше оперативної пам’яті. Тоді ви, мабуть, мали б зробити своп. Але це залежить від вашої завантаженості та способу користування машиною.
Якщо у вас більше 4 Гб оперативної пам’яті, є хороший шанс, що ваша система ніколи не зможе використовувати своп. Тож якщо заміна включена чи ні, це не зміниться сильно.
Хоча це залежить від інших факторів, чим довше ваша машина буде працювати, тим більше ймовірно, що ОС замінить невелику невикористану частину оперативної пам’яті на заміну, хоча, мабуть, залишилося багато місця. Однак часто система використовує "безкоштовну" оперативну пам'ять для файлових буферів та інших речей, і деяке завантаження може змусити ваш файловий буфер використовувати всю наявну оперативну пам'ять.
Довідкова інформація
Будь-який спосіб, що буде, якщо вимкнути своп і повністю використовувати вашу пам'ять? Що ж, наступного разу, коли програма вимагатиме більше пам’яті (наприклад, з malloc чи realloc), вона отримає помилку! Якщо він правильно зашифрований, додаток виявить його, але поводження з такою помилкою та закінчення програми граціозно може бути ще проблемою! Однак багато розробників не перевіряють на успішне розподіл пам'яті, і часто програма виходить з ладу, як тільки ця нерозподілена пам'ять буде використана. Таким чином, є велика ймовірність, що програма вийде з ладу, і насправді багато програм будуть виходити з ладу, оскільки у вас є декілька програм, які зазвичай працюють одночасно. Сподіваємось, саме ядро повинно бути захищеним, але, на мій досвід, це було не завжди.
Якщо у вас відбувся своп, ви будете мати таку саму поведінку , але у вас є вища межа, тому ймовірність того, що ви не досягнете цієї межі.
У мене є персонал 2 машини з 8 і 16 ГБ оперативної пам’яті. Моє особисте користування цією машиною ніколи не повинно наближати мене до використання всієї цієї оперативної пам’яті (сьогодні! Можливо, через кілька років, що може бути іншим). Єдина причина, по якій я б досяг фізичних обмежень оперативної пам'яті - це те, що процес отримав шахрайство і споживає всю оперативну пам'ять. Не маючи свопів - це полегшення, ядро негайно вб'є процес шахрайства, як тільки воно досягне межі оперативної пам'яті. Якщо у вас є своп, ви отримаєте болісний досвід (можливо, не на SSD ...), оскільки ваша система буде мінятись, замінятись і поміняти місцями, а іноді і зовсім не відповідатиме, поки, сподіваємось, ваше ядро не вбиває винуватця!
Консультує
Вам не слід лякати людей, які говорять вам про те, що може статися щось жахливо неправильне, якщо ви знімете своп. Якщо ви зробите це, то ваш фізичний адресний простір буде скорочуватися, приблизно як якщо б ви перейшли від 4 ГБ оперативної пам’яті до 2 ГБ. Ви б робили таке? Тоді не слід знімати своп. Однак ви можете вирішити його обмежити, і це було б розумно .
Якщо хтось думає, що його навантаження може примусити його використовувати близько або більше, ніж наявна фізична оперативна пам’ять, або якщо потрібно багато вводу / виводу (читання / запис на диски), слід тримати своп.
Коли слід зберігати своп, користувач повинен намагатися встановити обмеження на обсяг пам'яті, який може використовувати процес. У системі Linux можна використовувати обмеження пам'яті для групових груп, щоб уникнути того, щоб якийсь процес вийшов з-під контролю, я не знаю еквівалента в OS X, але це має бути шлях.
Однак, якщо у людини є більш ніж достатньо пам’яті для його робочого навантаження, він може спокійно відключити своп або він зможе його зберегти. Це не сильно зміниться навіть в плані продуктивності, оскільки якщо система не використовує своп, то ви не потрапите в падіння продуктивності (особливо це видно на старому обертовому жорсткому диску, рідше на SSD).
Використовуючи той же трюк, що і вище, щоб спробувати встановити обмеження пам’яті на процес або групу процесів, також виграє у випадку більш ніж достатньої кількості доступної оперативної пам’яті.
Мій власний приклад
У мене старий ПК з 1 Гб оперативної пам’яті, там у мене великий обмін: 4 Гб, щоб я міг запустити Firefox та інший додаток на ньому. Я схильний використовувати якомога менше додатків (або вкладок у Firefox), щоб мати правильний досвід користування.
У мене невеликий сервер з 8 ГБ оперативної пам’яті. Там я точно знаю моє робоче навантаження, і я не хочу, щоб мій сервер сповільнювався, оскільки процес отримав шахрайство і забирає всю пам'ять. Там у мене немає бар'єру, що підтверджує обмеження обміну пам'яті та групової пам’яті, тому програми або служби можуть вийти з ладу, але не ядро. До речі, це машина Linux.
Потім у мене є свій Mac з 16 ГБ оперативної пам’яті. Я не єдиний його користувач, і ми не були б проти зачекання при переключенні користувача. Там ми маємо своп, мені складно запланувати робоче навантаження інших користувачів цього комп’ютера. Навіть якби я був єдиним, я би використовував своп. Я часто запускаю кілька віртуальних машин і використовую додатки, що споживають пам'ять, але не всі вони одночасно, тому я не заперечую, щоб ОС замінила невикористану програму, щоб я міг отримати швидший введення / виведення диска або запустити ще одну віртуальну машину. До цих пір я не бачив, як ця машина мінялася!