Какой должен быть раздел подкачки(swap)? Должен ли swap быть в два раза больше размера ОЗУ или наоборот половины размера ОЗУ? Нужно ли вообще его создавать, если в моей системе есть несколько ГБ ОЗУ?
Это наиболее часто задаваемые вопросы о выборе размера подкачки при установке Linux.
Здесь нет ничего нового. Всегда было много путаницы вокруг размера подкачки.
В течение долгого времени считалось, что рекомендуемый размер swap должен быть вдвое меньше размера RAM, но это золотое правило больше не применимо к современным компьютерам. У нас есть системы с объемом оперативной памяти до 128 ГБ, у большинства старых компьютеров, даже нету такого жесткого диска.
Но какой размер подкачки вы выделите системе с 32 ГБ ОЗУ? 64GB? Это была бы смехотворная трата жесткого диска, не так ли?
Прежде чем мы увидим, какой должен быть размер подкачки, давайте сначала узнаем что же это такое. Эта информация поможет вам понять, почему используется swap.
Что такое swap(раздел подкачки, файл подкачки)?
При запуске приложения ваша система использует память произвольного доступа (RAM). Если работает мало приложений, ваша система справляется с доступной оперативной памятью.
Но если запущено слишком много приложений, или если приложениям требуется много оперативной памяти, ваша система попадает в беду, и начинает виснуть. И если для приложения требуется больше памяти, но вся оперативная память уже используется, приложение будет аварийно завершено.
Swap действует как передышка для вашей системы, когда оперативная память исчерпана. И когда это происходит, ваша система Linux использует часть памяти на жестком диске и выделяет ее в текущее приложение.
Это звучит здорово. Это означает, что если вы выделите 50% размера swap, ваша система сможет одновременно запускать сотни, или возможно, тысячи приложений? Но это не совсем так.
Понимаете, здесь важна скорость. Данные доступа к ОЗУ исчисляются в наносекундах. И например, если сравнивать, то в SSD(твердотельный накопитель) — доступ в микросекундах, а если это обычный жесткий диск — данные измеряются в миллисекундах. Это означает, что оперативная память в 1000 раз быстрее, чем SSD, и в 100 000 раз быстрее, чем обычный жесткий диск.
Если приложение слишком сильно полагается на раздел подкачки, его производительность ухудшится, поскольку оно не сможет получить доступ к данным с той же скоростью, что и в ОЗУ. Поэтому вместо того, чтобы выполнить задачу за 1 секунду, для выполнения одной задачи может потребоваться несколько минут. Это сделает приложение практически бесполезным.
Другими словами, небольшой обмен полезен, а уже много будет бесполезно.
Зачем нужен swap(раздел подкачки)?
Если в вашей системе, установлена оперативная память менее 1 ГБ, вы просто обязаны использовать swap, поскольку большинство приложений очень быстро заберут себе эту память.
Если ваша система использует ресурсо-затратные приложения, такие как видеоредакторы, было бы неплохо использовать немного подкачки, так как ваша оперативная память очень быстро израсходуется.
Если вы используете спящий режим, то вы должны использовать больше swap, потому что содержимое ОЗУ будет перемещено в раздел подкачки. Это также означает, что размер подкачки должен быть, по крайней мере, равен размеру ОЗУ.
Нужен ли вам swap, если у вас много оперативной памяти?
Это действительно хороший вопрос. Если у вас 32 ГБ или 64 ГБ ОЗУ, скорее всего, ваша система, возможно, никогда не будет использовать всю оперативную память и, следовательно, никогда не будет использовать раздел подкачки.
Но я все же думаю что она нужна. Я предполагаю, что если ваша система имеет 32 ГБ оперативной памяти, она также должна иметь жесткий диск объемом где-то 100 ГБ. Выделение пары гигабайт для раздела подкачки не повредит. Это обеспечит дополнительный уровень стабильности, если неисправная программа начнет злоупотреблять ОЗУ, и если вы захотите перевести компьютер в режим сна.
Но можно ли вообще обойтись без раздела подкачки?
Да, вы можете, особенно если в вашей системе установлено много оперативной памяти. Но, как объяснялось в предыдущем разделе, немного swap всегда рекомендуется.
Какой должен быть раздел подкачки?
Теперь возникает большой вопрос. Какой должен быть идеальный раздел подкачки?
И проблема здесь в том, что нет определенного ответа на этот вопрос об изменении раздела подкачки. Есть только общие рекомендации.
У разных людей свое мнение относительно идеального размера swap. Даже основные дистрибутивы Linux не имеют одинакового руководства по размеру swap.
Если вы прочитаете предложение Red Hat, то они рекомендуют что размер подкачки должен составлять 20% оперативной памяти для современных систем (то есть для 4 ГБ или выше ОЗУ).
В CentOS например, предлагают в два раза больше раздел подкачки чем ОЗУ, если ОЗУ меньше 2 ГБ
Ubuntu имеет совершенно другую перспективу по размеру swap, поскольку они учитывают спящий режим. И если вам нужен спящий режим, то в Ubuntu рекомендуют чтобы swap был равен ОЗУ.
Но если вам не нужен спящий режим,и если оперативной памяти больше 1 ГБ, размер подкачки должен быть как минимум равным квадратному корню от объема ОЗУ и не более чем в два раза больше ОЗУ
Каким же на самом деле должен быть раздел подкачки? Ответ никогда не бывает простым. Как было сказано ранее, в течение долгого времени, было рекомендовано создавать раздел подкачки который вдвое больше объема оперативной памяти.
Какой размер подкачки вы используете в своей системе? Напишите пожалуйста в комментариях ниже.
Вообще не использую. Имея 6 Гб оперативки, обхожусь без таковой. Испытано на диске с 4-мя дистрибутивами Linux. Я не использую ресурсоемких приложений.