Оптимальный размер swap в Linux для современных компьютеров
Казалось бы, вопрос об оптимальном объеме области подкачки обсуждался миллион раз. Но находятся пользователи — преимущественно поклонники Linux Mint — которые до сих пор ничего не соображают по этому вопросу. Выясним оптимальный размер swap и заодно развенчаем некоторые мифы.
[TOC Swap в Linux]
Что такое swap раздел?
SWAP — это часть виртуальной памяти. Некоторые неактивные страницы в оперативной памяти могут на время перемещаться на диск. Делается это для освобождения RAM, чтобы дать возможность активным программам работать более эффективно. Как только программа выходит из анабиоза, страницы с диска возвращаются в ОЗУ.
Что такое раздел подкачки?
Своп в файле — весьма неэффективно решение, так как файлы могут фрагментироваться. А отдельные разделы на диске не могут. Поэтому под swap в Linux можно и нужно заводить специальные разделы. Делать это лучше на этапе установки и разбиения диска. Можно и после, но тогда придется двигать разделы и бэкапить данные.
Как посмотреть размер swap?
Командой free
. Значение переменной virtual и будет искомой величиной.
Как создать swap в Linux?
mkswap /dev/sda2
swapon /dev/sda2
Осторожно! sda2 — это для примера. Указывайте точное название swap-раздела для своего компа, иначе потеряете данные.
Swap всегда высчитывается по формуле 2 x RAM
Не всегда. Например, на некоторых серверах установлено 256 Гб ОЗУ. Своп в 512 Гб не только не нужен, но иногда физически не помещается на SSD.
У меня современный комп, много ОЗУ, мне swap не нужен
Нужен. Не все программы для Linux безупречно оптимизированы. Даже если ваш компьютер имеет 8-16 Гб ОЗУ или более, всё равно может найтись программа, которая некорректно работает с памятью, да и старые добрые утечки никто не отменял. Если свопа нет и память будет исчерпана, компьютер перестанет отвечать и потребуется hard reset. Символический своп в 2-4 Гб позволит пережить такие неприятные ситуации.
Так какой объем под swap выделить?
Рекомендации различаются. Например, специалисты Red Hat рекомендуют использовать 20% от RAM, но при условии, что компьютер является современным. Под современным инженеры RH понимают такие, в которых установлено 4 Гб и более.
Разработчики CentOS рекомендуют другую формулу: удваивайте объем ОЗУ, если на компьютере 2 Гб и менее. Если более, используйте формулу: объем ОЗУ + еще 2 Гб. Например, в системе 4 Гб оперативной памяти, тогда создавайте своп на 6.
Программисты Canonical советуют диапазон: от квадратного корня из объема RAM до удвоенного значения. Это при условии, что памяти больше, чем 1 Гб. В противном случае удваивать память.
К кому прислушаться?
Лучше использовать усредненные значения:
RAM (Gb) | Swap (GB) |
1 | 1 |
2 | 1 |
3 | 2 |
4 | 2 |
6 | 2 |
8 | 3 |
12 | 3 |
16 | 4 |
24 | 5 |
32 | 6 |
64 | 8 |
128 | 11 |
Комментарии
Пяница Одменструатор
29 января, 2018 - 13:11
При своих 8гб ОЗУ отказался от своп в пользу zram. За 2 года ещё ни разу не столкнулся с нехваткой ОЗУ.
pomodor
29 января, 2018 - 18:18
У меня 16 Гб. Своп отключен. Но с нехваткой памяти уже столкнулся. И это не какой-то там ресурсоемкий спецсофт. 16 Гб скушал Chrome.
Чингачгук
29 января, 2018 - 15:25
А для спящего режима своп на данный момент также рекомендуется? Просто если ставить систему на SSD, для его долговечности своп — штука нежелательная.
pomodor
29 января, 2018 - 18:17
Для спящего режима отдельные требования и памяти для свопа требуется намного больше.
Про нежелательность свопа для SSD это правда, но следует отметить, что Linux достаточно хорошо оптимизирован для таких задач и износ минимален.
Чингачгук
29 января, 2018 - 18:58
А zram (как замена свопу) в спящем режиме будет работать?
pomodor
29 января, 2018 - 19:03
A zram разве заменяет swap? Он сжимает данные в ОЗУ и тем самым сокращает количество сбрасываний данных в swap, но не исключает их полностью.
Чингачгук
29 января, 2018 - 19:14
Понятно. Просто думал на ноут поставить SSD, раздел под swap не делать. Надеюсь, переход в спящий режим будет без "сюрпризов" :), хоть и swap рекомендуют создавать в таком случае.
Чингачгук
31 января, 2018 - 23:11
А команда swapon -s показывает, что есть
/dev/zram0
/dev/zram1
Texnoline
29 января, 2018 - 16:20
Держу везде 10-ку, даже на серваке — где 128 ГБ, хватает за глаза, и это отдельный SSD, на PCIE!
Molchun
2 февраля, 2018 - 06:31
А зачем вообще на линуксе спящий режим? Назовите, реальные плюсы от спящего режима в лине, про винду ни слова.
Чингачгук
3 февраля, 2018 - 07:46
Если уходишь надолго от компа, лучше спячку включить, экономия энергии всё-таки.
Molchun
4 февраля, 2018 - 10:46
лучше его выключить.
Я же просил плюсы для Линя, а вы мне плюсы для Винды. Это для Винды, которая загружается по несколько минут хороша спячка. Для Линя такой проблемы нет, за то время пока Вынь один раз загрузится Линь раз пять можно включить и выключить. Если вы скажете, что после выхода из спячки остаются открытыми программы и документы с которыми работали до спячки. Это, опять же, плюс для Венды, Линь можно выключить с сохранением сеанса и при включении все программы и документы откроются на тех же самых местах, что были до выключения. Так какие, всё таки, есть реальные плюсы от спячки для Линукса?
Чингачгук
23 ноября, 2018 - 07:27
Купил SSD, поставил минт 18 - загрузка ничем не быстрее чем на HDD. Так и не понял, в чем проблема. В спячку уйти не смог - зависал и отрубался вместо этого. Поставил винду семерку - результат офигенный! загрузка пустой винды 13 секунд (линь грузился около 40)!
Из минусов SWAP-раздела на SSD вижу один - износ. Дело в том, что на винде файл подкачки располагается в том же разделе, что и винда, а значит постоянно записывается в разных областях памяти всего раздела. В лине это отдельная область (например 2Гб), которая будет постоянно перезаписываться и быстрее всего деградирует.
Чингачгук
23 ноября, 2018 - 12:28
Вообще-то, в линуксе тоже подкачкой можно назначить файл.
pomodor
23 ноября, 2018 - 13:17
13 секунд? Позорище! У меня Убука на SSD загружается за 7 секунд.
Texnoline
23 ноября, 2018 - 15:12
Да скорее всего, данный SSD базируется на дешевой NAND, оля... отрезки выбраковки от производства SD-cart, от нонейм производителя из Китая, или бракованный контроллер! Конечно - 13 секунд, это жесть:(
Texnoline
23 ноября, 2018 - 15:10
Swap, может писаться и в файл, а не на раздел - с Ubuntu 18.04!
А если, в наличии от 6Gb (RAM), так он вообще не нужен...
Гость
5 февраля, 2021 - 04:36
Моя win10 на SSD загружается за 4-5 сек.
comrade
5 февраля, 2021 - 13:33
Иии...? У меня линуксы на ссд загружаются за те же секунды :)
К чему Ваш комментарий? Человек же правильно написал, что в том виндовсе, который долго грузится (с HDD), имеет смысл пользоваться спящим режимом.
Вы что – на ссдшке спящий режим интенсивно используете? Не жалко ссдшку?
Или Вы хороших денег отстегнули на ссдшку с большим ресурсом, и теперь из принципа её ёрзаете?
:-)))
Гость
9 февраля, 2021 - 10:11
Не знаю о каком комментарии Вы пишите. Я брал цитату из коммента в котором HDD не упоминался.))
comrade
9 февраля, 2021 - 19:14
Думаете, человек перфокарты имел в виду?
;-)
Вообще-то, это Вы там у себя передёрнули…
Было:
Куда
делась?
Да, достаточно часто бывает, что виндовс долго грузится. Тогда полезен спящий режим (или, лучше, виндовс нормально настроить:-)
Комментатор же не пишет, что виндовсы грузится по две или по пять минут на всех компьютерах! Ваш пример опроверг бы именно такое утверждение. А так – всё правильно написано.
линуксюзер
23 июня, 2020 - 13:37
Уж года три swap вообще не использую, ноут и комп только быстрее работают, нехватки памяти нет, хотя ее в обоих компах по 4гб. Главное - не использовать хром!
Yurben
30 августа, 2020 - 21:08
Сложно коментарии читать на мобильной версии, текст уходит за рамку комента
Faq
25 мая, 2021 - 20:13
Поправьте блок комментариев для мобильной версии
Комментировать