Собираюсь установить себе OpenSUSE. Уже запутался — одни говорят своп нужен, другие что не нужен.
Имею 3 Гб оперативки. Гибернацией пользоваться не собираюсь, но возможно использование серьезных приложений (например, MatLab). Также, очень вероятно, что буду работать с веб-серверами, но для себя (просто поучиться).
Нужен ли тут swap? Если да, то в каком объеме?
P.S. Не исключен вариант, что я просто не понимаю «как это работает». В моем представлении, это что-то вроде файла подкачки Windows.
Не плюсом единым :)
Например, на домашней машине, где 6G RAM, у меня хотя и есть небольшой свап-раздел, но он всегда использован на 0.
А вот на серверах, даже при наличии 8-12G, я все равно делаю свап, хоть на 1G — иногда выручало.
Однозначно нужен. Присоединяюсь ко всем высказавшимся
@KriegeR Я бы учитывая все сказанное не стал тут отписываться… НО Стоило мне открыть ваш вопрос — впревые за хз сколько времени Упала Плазма!!! Признавайтесь — у вас в тексте какой-то специальный антиКде-мем закодирован, да?
Своп нужен просто потому что система будет сбрасывать неисользуемые страницы на диск. И делает она это вовсе НЕ когда кончается память. Вот представьте — работает у вас браузер, фотошоп и файловый менеджер. Но так как вы ими сейчас не пользуетесь, свободны все равно (почти) 3 Гб оперативы. Диски нынче дешевые, так что 1-2 Гб под своп выделить — ерунда (как один фильм по объему выходит).
На работе 4 гигабайта оперативки под Ubuntu. Обычно своп не используется, хотя в памяти постоянно загружена виртуальная машина с Windows XP. Оставил её с Firefox с 5 вкладками на выходные. В понедельник получил забитую под 0 оперативку и кучу данных в свопе. А думал вообще не понадобится. Firefox пришлось перезапустить.
Не обязательно что-то оставлять (хотя желательно), свап можно создать и в файле — это так, для информации — по сабжу отписался уже о его необходимости.
1) Своп файл обладает более низкой производительностью, чем отдельный раздел. Потому что блоки, которые составляют своп-файл, могут идти не подряд. Потому что размер блока не кратен размеру блока своп-файла. Потому что обращение к своп файлу происходит через (многопоточную) файловую систему, а не через быстрый, заточенный под своп алгоритм.
Говоря по другому, своп файл обладает максимальной скоростью, благодаря тому, что используемые сектора на диске всегда идут подряд, а обращения ввода/вывода (I/O requests) оптимизированы и производятся непосредственно к устройству. Благодаря тому, что алгоритм записи страницы памяти на сектор жесткого диска крайне прост и легко оптимизируется.
2) Операционная система постоянно что то пишет в своп файл. И если случится сбой файловой системы, то вероятность, что файловая система будет повреждена, будет большой. Больше количество записей, больше вероятность необратимых повреждений. Хранение своп-раздела отдельно от «обычной» файловой системы это предотвращает.
На серверах нужен, на домашнем компе при 4+ гигов памяти — не нужен. Я последние пару-тройку лет не видел на своих компах занятость свопа, отличную от нуля. На большинстве серверов — тоже, но там я оставляю на случай «утечек» памяти, чтобы система сумела хотя бы форкнуть ssh-сессию.
1. При краше системы делается дамп не всей ОП, а только ее небольшой части (в основном занятой процессом, приведшим к крешу).
2. Простому юзеру эти дампы вообще ни разу не упали и могут быть спокойно отключены.