Swap с гибернацией или без что лучше
swap только для гибернации, как?
У меня достаточно оперативной памяти (8гб, забито обычно не больше 2гб, максимум 4 было), после того как сдох SSD, вернувшись временно на хард, решил сделать своп раздел, для гибернации, и при том, что памяти до хрена, убунта 12.04 кладет какашки в своп раздел. Как сделать так что бы своп использовался только для гибернации, и при этом программами нет? Спасибо пожалуйста
убунта 12.04 кладет какашки в своп
Очень странное поведение при наличии свободной памяти. Предлагаю просто сделать своп побольше.
Понизьте sysctl vm.swappiness
Поставил 1, спасибо. Гибернация работать будет?
Кстати, никто не может его сейчас выложить, я его случайно удалил %)
Лучше 0, да будет. При 0 будет скидывать в своп только когда вся память заполена.
А как своп больше поможет? я просто не хочу что бы программы складывали информацию с которой они работают т.к. оперативки больше чем предостаточно и после ссд и так ощущение что все стало гораздо медленнее (еще бы, с сата3 SSD на sata2 hdd 5400rpm)! Хочу своп использовать исключительно для гибернации.
Сейчас случайно удалил этот файл в ходе экспериментов, мог бы куда-нибудь залить? :3
да он пуст, всмысле одни комменты, раскоменченное только что я добавил. http://dl.dropbox.com/u/43980721/sysctl.conf
после загрузки сделать swapoff
перед гибернацией swapon
после выхода из гибернации снова swapoff
Как сделать так что бы своп использовался только для гибернации, и при этом программами нет?
Смотрите в сторону TuxOnIce.
не люблю христианство! но вообще посмотрю
Запили в скрипты гибернации автоматическое подключение своп-файла и автоматическое выключение.
Зато задержек при сиюминутной работе нет, когда в памяти висит то, что не нужно 99% времени. Неужели так трудно понять, что отключение свопа сделает только *хуже* при любом раскладе?
мне кажется, конечно я никаких таких тестов не проводил, почти полностью забитая оперативная ddr3 память работает быстрее чем sata2 5400rpm своп диск в любом случае, при том, что нужды в свопе никогда не было в принципе, только для гибернации
SWAP для Linux
SWAP один из важных параметров для стабильной работы операционной системы Linux. Споров о том как правильно использовать в интернете существует масса. Для правильной настройки надо иметь понимание для чего используется ваша система.
Введение
Постараюсь коротко рассказать основные моменты которые надо учитывать и дать практические советы проверенные на личном опыте.
Нужен SWAP или нет?
Однозначно нужен! Можно обойтись и без него, но тогда имейте в виду, что:
Если в первом случае вы можете отказаться от использования режима сна, то во втором никто и никогда не даст вам гарантии что какая-то используемая вами программа не даст сбой и заполнив всю память не повесит систему.
Размер SWAP
Советов по размеру множество, но мы остановимся на советах разработчиков Red Hat (CentOS):
При современных объемах жестких дисков я бы не стал жалеть места на размер SWAP и уверяю вас что экономия места в данном случае может привести к гораздо большим проблемам.
Варианты размещения SWAP
Исторически в Linux SWAP размещался на разделе, но в современных дистрибутивах производительность SWAP-файла не уступает SWAP-разделу и это весьма радует.
SWAP-раздел
Когда вы точно знаете, что размер оперативной памяти меняться не будет и вы точно уверены в размере SWAP разумно выделить раздел при установке системы.
SWAP-файл
Использование файла очень удобно особенно когда нет точного понимания какие будут окончательные аппаратные параметры системы. Файл можно создать в любом удобном месте и необходимым вам размером. Ниже я расскажу как это сделать.
ZRAM и ZSWAP
Вариант с использованием этих вариантов требует наличие хорошего опыт в использовании Linux систем. На мой взгляд данный способ имеет смысл использовать с хорошим знанием системы на которой это будет работать.
ZRAM — это модуль ядра Linux, позволяющий сжимать содержимое оперативной памяти, и таким образом увеличивать ее объем в несколько раз. ZRAM создает сжатое блочное устройство в ОЗУ которое чаще всего используется как swap. При этом степень сжатия данных получается в среднем 3:1. Это означает что на 1 гигабайт подкачки будет использовано в 333 мегабайт физической памяти.
ZSWAP — отличается от ZRAM тем, что использует существующий swap-раздел на диске, а в ОЗУ создаётся пул со сжатыми данными (кэшем). После того как пул до отказа забьётся сжатыми данными, он сбросит их в раздел подкачки и снова начнёт принимать и сжимать данные. По утверждению разработчиков, в их конфигурации при компиляции ядра в ситуации когда происходит свопинг, выигрыш по объему ввода/вывода составил 76%, а время выполнения операции сократилось на 53%. При использовании ZSWAP, используется раздел swap на диске, в ОЗУ хранится только сжатый кэш.
Swap manjaro gnome
Устанавливаю manjaro gnome на ноутбук. При установке предлагает создать swap раздел на диске. Оперативки имеется 20gb. Вопрос нужно ли делать этот swap раздел? Нужен ли он вообще? И если делать то с гибернацией или без? До этого после установки была проблема что зависал ноутбук при выходе из ждущего режима, хотя создавал раздел swap с гибернацией
Нужна гибернация — swap размером не менее оперативной памяти. Не нужна — swap размером в несколько гигабайт, например 4, можно файлом, а не разделом. Но swap нужен: https://unix.stackexchange.com/questions/190398/do-i-need-swap-space-if-i-hav.
А можно swap в zram.
Вопрос нужно ставить так: как обрабатывать нехватку памяти?
Suspend to RAM, swap 256M
UPD: zswap, vm.swappiness=10
Нужна гибернация — swap размером не менее оперативной памяти.
Необязательно. Записывается только используемая память и сжимается.
Согласен. Вообще без свопа не хорошо, при нехватке будет раком вставать, а так полагает сначала, намекнёт тонко что память не резиновая.
А вот его бы я слушать стал только в случае, если нужен жёсткий узкоспециальный тюнинг, для общих случаев это весьма сомнительно.
Всегда можно потом сделать своп в файле, если что. На 2гиг озу без свапа жопа, а вот на 16гиг ещё ни разу мне не потребовался.
без свопа не хорошо, при нехватке будет раком вставать
с юзерспейсными киллерами не будет, при этом еще и не будет мучительного своппинга
для общих случаев отлично работает.
Зато будет крашить нужный пользователю процесс
это дефолтный киллер нужные убивает, а юзерспейсные позволяют более тонко настраивать выбор жертвы, плюс сначала попытка корректного завершения через sigterm, плюс опция гуи уведомлений при нехватке памяти, чтоб юзер имел шанс самостоятельно отреагировать заранее, закрыв ненужные приложения.
Когда юзерспейного киллера нет, есть вероятность полного фриза, когда у юзера один выбор: hard reset с потерей данных.
Когда юзерспейного киллера нет, есть вероятность полного фриза
Открой для себя cgroups.
один выбор: hard reset с потерей данных
Открой для себя alt+sysrq+f.
Может вообще не срабатывать:
Ещё одно доказательство, что встройки для любителей страданий.
Глянь в Wiki.Arch или в другой документации. Там пишут, что Systemd может создавать в виде файла. По умолчанию размер 20℅, вроде. Но упоминают про проблемы с гибернацией от такого способа. И в ядре есть механизм работы практически напрямую с блоками swap-файла, но нужна поддержка в ФС, а в btrfs и f2fs добавили относительно недавно, а в большинстве же давно есть. А может и создавать zram, управлять zswap.
Для гибернации нужно только столько, чтобы влезла вся память. Стандартный минимум образа 40%, вроде, но можно подкрутить. Делай замеры и смотри значения без кэша, если место жалко. Еще swap хоть и даст место для хранения растекающейся памяти, но при больших потоках толку немного. Старый способ делать под 100%-200% и раньше не очень работал.
Тут zram предлагают, но этот вариант архитектурно немного кривоват и стоит его использовать если нужно обойтись без записи на диск, разве что. Лучше использовать zswap, который тоже сжимает страницы в память, но потом сжатыми же сбрасывает на диск.
В zram уже добавили witeback на физический диск, так что теперь разница между ним и zswap не очень ясна. Правда это нужно настраивать.
zram уже добавили witeback на физический диск
Оно нихрена не работает.
Бегло глянул. Ему нужен отдельное блочное устройство под backing storage, или он в swap может сбросить? Написано, что в файлы сбрасывать не может.
сжатыми же сбрасывает на диск.
unixforum.org
Форум для пользователей UNIX-подобных систем
Нужен ли Swap? (если на машине много памяти)
Модератор: Bizdelnick
Нужен ли Swap?
Сообщение Axert » 05.01.2006 19:24
Re: Нужен ли Swap?
Сообщение t.t » 05.01.2006 19:59
Re: Нужен ли Swap?
Сообщение Axert » 05.01.2006 20:42
Re: Нужен ли Swap?
Сообщение Valerius » 05.01.2006 20:55
Свобода есть тонкая полоска между диктатурой и анархией.
———————
Mandriva Linux PowerPack 2006 (Cooker-нутая) / KDE-3.5.1
Re: Нужен ли Swap?
Сообщение Axert » 05.01.2006 21:01
Re: Нужен ли Swap?
Сообщение Haxver » 05.01.2006 21:06
Re: Нужен ли Swap?
Сообщение t.t » 05.01.2006 21:17
Re: Нужен ли Swap?
Re: Нужен ли Swap?
Сообщение Haxver » 05.01.2006 22:13
Да, действительно. Как-то не додумался.
Re: Нужен ли Swap?
Сообщение Portnov » 05.01.2006 22:16
Re: Нужен ли Swap?
Сообщение vg2.0 » 06.01.2006 02:47
0.*-1.*, но swap расходуется по 150-200MB, и со временем становится больше и больше, сервер работает без перезагрузки. Так должно быть? Кто нибудь сталкивался с такой проблемой. Вот что крутиться на сервере squid, postfix, mysql, apache, ssh.
Re: Нужен ли Swap?
Сообщение Portnov » 06.01.2006 15:43
Re: Нужен ли Swap?
А мне что посоветуете?
Re: Нужен ли Swap?
Сообщение seif » 05.05.2006 15:19
Re: Нужен ли Swap?
Сообщение FlintDEmon » 05.05.2006 15:34
Re: Нужен ли Swap?
Сообщение n1tr0gen » 05.05.2006 18:57
Подробнее можно почитать например здесь.
Re: Нужен ли Swap?
Сообщение Le01evF » 08.08.2008 00:30
Когда я только начал разбираться с Linux неоднократно читал, что размер swap-раздела должен быть в два, а то и в три раза больше объема оперативной памяти. Потом мне как-то из экономии места на диске посоветовали делать 1:1. Недавно где-то читал, что при 4 Gb оперативной, 1 Gb swap’а за глаза.
Сейчас вот у меня на 1024 Mb паямти, 1 Gb swap-раздел. По выводу free очевидно, что даже 1% его не используется.
«We all know Linux is great…it does infinite loops in 5 seconds!» © Linus Torvalds
|| Samsung R25: Intel® Core™ 2 Duo 1.86 GHz // 512*2 Mb DDR2-667MHz // GeForce™ Go 7300 128 Mb // SATA 120 Gb (5400 rpm)
Re: Нужен ли Swap?
Сообщение AcidRain » 08.08.2008 00:47
Re: Нужен ли Swap?
Сообщение Rootlexx » 08.08.2008 00:49
Добавлено: почитайте это ещё.
Re: Нужен ли Swap?
Сообщение Kindigo » 08.08.2008 01:11
Re: Нужен ли Swap?
Сообщение Flaming » 08.08.2008 02:20
Re: Нужен ли Swap?
Сообщение AcidRain » 08.08.2008 02:33
Re: Нужен ли Swap?
Сообщение yamah » 08.08.2008 07:58
Re: Нужен ли Swap?
Сообщение kostyak » 08.08.2008 07:59
Re: Нужен ли Swap?
Сообщение rm_ » 08.08.2008 08:22
Re: Нужен ли Swap?
Сообщение Juliette » 08.08.2008 09:04
Re: Нужен ли Swap?
Сообщение MrWeber » 08.08.2008 09:39
Re: Нужен ли Swap?
Сообщение Kris » 08.08.2008 10:05
Re: Нужен ли Swap?
Сообщение nesk » 08.08.2008 15:06
Нехватка оперативной памяти в Linux на рабочем ПК: оптимизация и действия при зависании
На любой операционной системе часто не хватает оперативной памяти. Рассмотрим, как и сэкономить на увеличении аппаратных ресурсов машины с Linux, и продолжить более-менее комфортно пользоваться компьютером с Linux в условиях нехватки памяти.
Типична такая ситуация: есть своп (swap, раздел подкачки), который начинает использоваться при нехватке оперативной памяти, и размещен он на HDD, то есть жестком диске с низкой скоростью чтения информации. В таких ситуациях операционная система начинает тормозить, подвисает курсор мыши, сложно переключиться в соседнюю tty и т.д. Почему? Потому что планировщик ядра Linux не может выполнить запрос на какое-то действие в запущенной программе, пока не получит доступ к ее оперативной памяти, выполнить следующее действие тоже не может, образовывается очередь из запросов на чтение с диска, и система «подвисает» именно потому, что обработка очереди происходит гораздо медленнее, чем этого хочет пользователь.
Ответ будет 60 почти наверняка. Это значит, что ядро Linux начинает свопить редко используемые страницы оперативной памяти, когда использование свободной оперативной памяти достигает 100%-60%=40%. Часто встречаются рекомендации поставить, например, vm.swappiness=10, чтобы своп не начинал использоваться, пока загрузка ОЗу не достигнет 90%. На самом деле не нужно трогать vm.swappiness, вы не умнее разработчиков ядра Linux, которые не просто так поставили 60 по умолчанию. Почему?
Представьте, что у вас всего 4 ГБ оперативной памяти, из них прямо сейчас занято 3 ГБ, vm.swappiness=10, своп на жестком диске (HDD) занят на 0%, и вы открываете тяжелый сайт в браузере, для чего требуется больше, чем имеющийся свободный 1 ГБ, например, 2 ГБ. Операционная система начинает в экстренном порядке отправлять в своп как минимум 0.5 ГБ (а по факту больше), чтобы можно было выделить браузеру необходимое количество оперативной памяти. Эта процедура становится самой приоритетной задачей, и придется пожертвовать даже движениями курсора мыши, чтобы ее выполнить как можно быстрее. Вы ждете. Проходит 5 минут, и система развисает, потому что окончила процедуру 100% загрузки очереди доступа к медленному жесткому диску, на котором размещена оперативная память (своп). При дефолтном vm.swappiness=60 редко используемые страницы памяти сбрасываются в своп заблаговременно, и резкого зависания на 5-10 минут не происходит.
UPD. В комментарии подсказывают, что это не точное описание работы vm.swappiness.
zram и приоритеты свопов
Рекомендую включить zram — прозрачное сжатие содержимого оперативной памяти. В Ubuntu это автоматизировано, достаточно установить пакет:
sudo apt install zram-config
Здесь и далее для дистрибутивов Rosa, Fedora все то же самое, но вместо zram-config —
Сервис systemd zram-config на Ubuntu будет автоматически добавлен в автозагрузку при установке пакета и запущен при перезагрузке системы. Для запуска вручную:
sudo systemctl start zram-config
sudo systemctl stop zram-config
Удаления из автозапуска:
sudo systemctl disable zram-config
Добавление в автозапуск:
sudo systemctl enable zram-config
При запуске zram-config берет число, равное 50% всего объема оперативной памяти, далее делает по одному виртуальному устройству /dev/zramN, где N начинается с 0, для каждого ядра процессора, а объем каждого /dev/zramN равен 50% всей оперативной памяти, деленному на количество ядер процессора. Так делалается для распараллеливания сжатия содержимого оперативной памяти по ядрам процессора; насколько я знаю, на современных ядрах Linux достаточно одного устройства /dev/zramN, а распараллелится оно само, но меня полностью устраивает искоробочная работа zram-config, и предпочитаю не лезть в нее руками.
Кстати, zram часто применяется на смартфонах, какую-либо на глаз заметную нагрузку на процессор при дефолтном методе сжатия lz4 он не создает.
Опцией монтирования pri=X заданы приоритеты свопов. Если еще включить zram, то картинка будет такой:
В первую очередь будет свопиться в zram, то есть сжиматься внутри оперативной памяти без использования внешнего устройства для свопа, во вторую — использовать небольшой своп на SSD. Почти никогда не будет использоваться 6 ГБ свопа на HDD, однако они понадобятся, если я захочу отправить компьютер в спящий режим в условиях большой загрузки оперативной памяти. (На самом деле у меня отключен zram).
Быстро вырубить программу, перегружающую ОЗУ. Запас ОЗУ для SSH
Бывает такое, что даже при vm.swappiness=60 какому-то черту, как правило, браузеру, требуется очень много оперативной памяти, и система подвисает. Решается очень просто: сочетание клавиш Alt+SysRq(PrintScreen)+F заставляет oom_killer принудительно включиться и вырубить процесс, который на момент вызова занимает больше всего памяти. Строго 1 процесс на 1 вызов, и строго обязательно что-то будет убито. Если много раз подряд нажмете, то, скорее всего, перезапустится графическая сессия. Событие убиения процесса отражается в dmesg красным цветом.
Для работы Alt+SysRq+F нужно kernel.sysrq=1. Для этого отредатируем параметры ядра, расположенные в файлах /etc/sysctl.conf (обычно симлинк на /etc/sysctl.d/99-sysctl.conf) и /etc/sysctl.d/*.conf. Лучше всего создать отдельный файл:
sudo nano /etc/sysctl.d/99-dumalogiya.conf
Нажмем Ctrl+O, Enter для сохранения.
В случае с браузером Chromium Alt+SysRq(PrintScreen)+F будет вырубать по одной вкладке, не закрывая сам браузер, что очень удобно.
Сочетания клавиш Magic SysRq перехватываются напрямую ядром Linux, поэтому работают даже когда из-за очереди процессора подвисает X-сервер.