SWAP

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Закрыто
no avatar

Автор темы
Olej
Сообщения: 58
Зарегистрирован: 12 апр 2017, 19:59
1
Поблагодарили: 2 раза

SWAP

#1

16 апр 2017, 20:35

Последние времена:

- RAM Linux обязательно перевалили минимум за 1Gb (ещё не так давно 256Mb было "за глаза"), нормой стало 4Gb, очень часто на типовом десктопе 8Gb или 16Gb ... про сервера здесь не говорим...
- многие переходят на быстрые твёрдотельные SSD диски.

В связи с этим очень говорят и пишут, даже очень авторитетные люди и источники, утверждают (и именно в такой формулировке):
У меня много оперативной памяти и диск SSD и именно поэтому у меня вообще нет swap и нет в нём нужды.


Я думаю (IMHO :!: ), что это принципиально неверно. И поэтому в деталях хотелось бы уточнить (и собрать из разных мест) всё о swap в этой теме:
  • 1. обязателен ли swap?
    2. какие есть способы (варианты) организации swap?
    3. связано ли как-то использование swap с SSD?
    4. какой размер выбирать для swap?
    5. как управлять (оптимизировать) работой swap.
Если у кого есть соображения, наблюдения, опыт использования на этот предмет - поделитесь.
Последний раз редактировалось пользователем 1 Dja; всего редактировалось раз: 23

no avatar

Автор темы
Olej
Сообщения: 58
Зарегистрирован: 12 апр 2017, 19:59
1
Поблагодарили: 2 раза

swap

#2

16 апр 2017, 20:39

Olej писал(а): Если у кого есть соображения, наблюдения, опыт использования на этот предмет - поделитесь.
Здесь эта замечательная тема была затронута, но только мельком и не получила продолжения:
В-третьих, swap такого размера нужен лишь тогда, когда требуется использовать гибернацию (suspend to disk). См. здесь: https://help.ubuntu.com/community/SwapFaq

Вообще советы с отключением swap, вынесением разных разделов на HDD и всем таким прочим попросту вредны: если вы боитесь испортить SSD и старательно выносите как можно больше всего на HDD, жертвуя производительностью, то зачем вообще было его покупать? Современные SSD живут довольно долго даже при интенсивной записи.
Подробности (несмотря на то, что блог о Windows, многое применимо и к другим ОС):
http://www.outsidethebox.ms/14402/
http://www.outsidethebox.ms/14432/
http://www.outsidethebox.ms/18156/
 ! Сообщение из: symon2014
За неуёмное пристрастие пользователя пофлудить и поспамить выдана "заслуженная" награда - БАН.

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

swap

#3

16 апр 2017, 21:41

Наверное начать стоит с того, что изначально swap - это отделенное место на ПЗУ (файлом или разделом), предназначенное в основном для двух целей:
  • перемещать туда наборы страниц памяти для предотвращения выхода за доступные объёмы, во избежание Out of memory
  • для использования режима гибернации (сна), когда содержимое оперативной памяти временно записывается в своп, для возможности снизить энергопотребление в простое
Если режим сна планируется использовать - то все рекомендации сводятся к хотя бы 1,5Х размеру свопа относительно ОЗУ
Исходя из этого - необходимость в свопе зависит от объема ОЗУ в разрезе на возлагаемые к системе ресурсоёмкие до оперативной памяти задачи, и от профиля использования режимов энергосбережения.

Для примера - свежий скайп в процессе работы без труда выходит к планке в 1Гб, браузеры могут за 2-3Гб при полусотне вкладок, плюс системные нужды от 300-500 Мб, офисные приложения, почтовые клиенты, виртуальные машины, Steam... Оперативы на всех не напасешься :smile:

На случай 4-х Гб ОЗУ - зная прожорливость десктопных приложений и игр - я предпочту выделить хотя бы пару гб под своп.

При 8 Гб и выше - мне обычно хватает оперативной памяти, особо не отслеживая запущенные приложения и спустя три-четыре дня аптайма - утилизация обычно не превышает 5,5Гб и система продолжает шевелиться.
Но под чьи-то типовые задачи не хватит и этого объема, например несколько виртуалок парралельно (еще и без balooning'а), Java разработчикам запуск и отладка приложений с высоким -Xmx, JMC из этой же серии... Есть немало сценариев забить и 16 и 32 Гб, с серверами - так вообще отдельная история...

При любой аппаратной конфигурации - обращение к своппированным данным это явная просадка по производительности. Поэтому при наличии свопа в системе - превый важный твик это vm.swappiness, о нем уже тоже упоминали неожнократно, дефолтное значение в 60 означает что использование свопа начнется уже при 40% утилизации ОЗУ, что в подавляющем большинстве случаев не будет эффективным сценарием распределения ресурсов. При типовых десктопных задачах - этот параметр лучше держать ближе к нулю.

Ну, и резюмируя все то что я тут понаписал - своп для спящего режима это нормально, а вот своппинг в процессе работы - всегда плохо, если он случается постоянно - все же лучше увеличить объем оперативной памяти, благо сегодня это не такой уж и дефицит.
Изображение
   
Изображение

no avatar

ЧЯДНТ

swap

#4

17 апр 2017, 02:18

Olej писал(а): Здесь эта замечательная тема была затронута, но только мельком и не получила продолжения:
Раз уж сослались на ветку, созданную мной, то вставлю свои пять копеек.
У меня как раз SSD, оперативки хватает для полноценной работы без свапа, но полностью отключать не стал, т.к. есть специфические задачи, которые легко съедают всю оперативку. Поэтому сделал vm.swappiness=10
ИМХО swap лучше ставить на SSD. Ибо на кой черт его покупать, если не использовать. У меня за 10-12 месяцев использования на Windows 10 и 1,5-2 на Mint ресурс по TBW 2,9 из 35. Если ничего не изменится, то ещё 10 лет будет жить. За свою жизнь нельзя быть настолько уверенным, чтоб SSD беречь :) Вообще, чтоб сберечь SSD нужно его не подключать.

А так согласен с Chocobo.

Аватара пользователя

sana-555
Сообщения: 427
Зарегистрирован: 21 июл 2017, 20:38
Благодарил (а): 385 раз
Поблагодарили: 8 раз
Контактная информация:

swap

#5

15 авг 2017, 16:34

Chocobo писал(а): превый важный твик это vm.swappiness
Здесь нужно добавить эту строчку, и нужно ли перед vm.swappiness=1 поставить #, а то в этом файле все строки начинаются с #?
gksu gedit /etc/sysctl.conf

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

swap

#6

15 авг 2017, 17:07

sana-555, те что с решетки - прописаны там как примеры некоторых конфигураций и не учитываются при парсинге конфига.
Изображение
   
Изображение

Аватара пользователя

sana-555
Сообщения: 427
Зарегистрирован: 21 июл 2017, 20:38
Благодарил (а): 385 раз
Поблагодарили: 8 раз
Контактная информация:

SWAP

#7

29 янв 2018, 12:26

При каких значениях(%) занятой оперативной памяти должен заработать swap, если я поставил vm.swappiness=1?
Или какое значение прописать, если я хочу чтобы swap начал работать только при привышении 90% оперативной памяти, а лучше 95%?

Аватара пользователя

rogoznik
Сообщения: 10015
Зарегистрирован: 27 июн 2017, 13:36
Решено: 128
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1950 раз
Контактная информация:

SWAP

#8

29 янв 2018, 12:46

sana-555, при значении vm.swappiness=10 должен свапиться, если оперативки занято 90%, т.е. осталось 10%.
ИзображениеИзображение

Аватара пользователя

sana-555
Сообщения: 427
Зарегистрирован: 21 июл 2017, 20:38
Благодарил (а): 385 раз
Поблагодарили: 8 раз
Контактная информация:

SWAP

#9

29 янв 2018, 12:52

Что то я не могу понять, получается если я поставил vm.swappiness=1, то по идее должен свапиться, если оперативки занято 99%? А у меня сработал, при использованной оперативке всего 60%? :scratch:

Аватара пользователя

di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

SWAP

#10

29 янв 2018, 12:59

Это значение не привязано к процентам заполнения памяти Swappiness
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

sana-555
Сообщения: 427
Зарегистрирован: 21 июл 2017, 20:38
Благодарил (а): 385 раз
Поблагодарили: 8 раз
Контактная информация:

SWAP

#11

29 янв 2018, 13:16

di_mok писал(а):
29 янв 2018, 12:59
Это значение не привязано к процентам заполнения памяти
Хорошо, какое тогда значение оптимально, чтобы swap включался при большем значении использованной оперативки, 1 или 10?

Аватара пользователя

di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

SWAP

#12

29 янв 2018, 13:22

Я на буке ставлю 10. На десктопе вообще свап не использую. sana-555, а сколько памяти на этом копмпьютере?
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

sana-555
Сообщения: 427
Зарегистрирован: 21 июл 2017, 20:38
Благодарил (а): 385 раз
Поблагодарили: 8 раз
Контактная информация:

SWAP

#13

29 янв 2018, 13:24

12 гГб, просто у меня 2 виртуалки еще на нем...

Аватара пользователя

di_mok
Сообщения: 5469
Зарегистрирован: 27 авг 2016, 19:06
Решено: 32
Откуда: Арзамас
Благодарил (а): 1593 раза
Поблагодарили: 1276 раз
Контактная информация:

SWAP

#14

29 янв 2018, 13:32

Мне кажктся - по уши, что-бы совсем отказаться
Настоящая водка — это не пьянство, а ключ к своей совести, с нее-то и начинается настоящая мудрость. (c)
Изображение

Аватара пользователя

sana-555
Сообщения: 427
Зарегистрирован: 21 июл 2017, 20:38
Благодарил (а): 385 раз
Поблагодарили: 8 раз
Контактная информация:

SWAP

#15

29 янв 2018, 13:49

di_mok писал(а):
29 янв 2018, 13:32
Мне кажктся - по уши, что-бы совсем отказаться
Удалением раздела swap, и записи в sudo gedit /etc/fstab? Может быть есть возможность пока программно отключить, чтобы проверить?
---
Еще заметил странную особенность поведения swap... У меня было значение: vm.swappiness=1, не заметил, на каком значении оперативной памяти он включился. Но, при отключении поочередно всех приложений, вплоть до того, что оперативная память стала около 10%, но подкачка так и не отключилась... Получается если подкачка однажды сработала, то она уже не отключается вплоть по перезагрузки, если даже оперативка занята всего на 10-15%?

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

SWAP

#16

29 янв 2018, 14:24

di_mok писал(а):
29 янв 2018, 12:59
Это значение не привязано к процентам заполнения памяти
На самом деле все еще интересней:
https://access.redhat.com/documentation ... y-tunables
swappiness
A value from 0 to 100 which controls the degree to which the system favors anonymous memory or the page cache.
Исходя из этого определения - управление swappiness относится больше к контролю своппинга anonimous memory
https://techtalk.intersec.com/2013/07/m ... ory-types/
https://www.thomas-krenn.com/en/wiki/Li ... che_Basics

Поэтому эффективность swappiness получается зависит от профиля использования памяти конкретными приложениями. И также стоит учитывать, что vm.swappiness=0 не значит, что своп не будет использоваться совсем, но с большей долей вероятности он будет задействован ближе к риску ООМ. Для гипервизора может быть не лишним.
sana-555 писал(а):
29 янв 2018, 13:49
Получается если подкачка однажды сработала, то она уже не отключается вплоть по перезагрузки, если даже оперативка занята всего на 10-15%?
Ядро постепенно выгрузит то что попало в своп при очередных обращениях к этим наборам памяти. А т.к. туда складывают в первую очередь наборы памяти с наименьшей интенсивностью обращения - может пролежать N-времени до востребования.
Принудительно выгрузить своп обратно в оперативку можно с swapoff -a; swapon -a
Изображение
   
Изображение

Аватара пользователя

sana-555
Сообщения: 427
Зарегистрирован: 21 июл 2017, 20:38
Благодарил (а): 385 раз
Поблагодарили: 8 раз
Контактная информация:

SWAP

#17

29 янв 2018, 14:33

Chocobo писал(а):
29 янв 2018, 14:24
Принудительно выгрузить своп обратно в оперативку можно с swapoff -a; swapon -a
Работает :smile: , а если опять понадобится, то своп снова включится (я имею ввиду автоматически)?

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3008 раз
Контактная информация:

SWAP

#18

29 янв 2018, 14:37

sana-555, Ага, он включен. и также будет подхвачен системой при необходимости вновь складывать туда данные.
Изображение
   
Изображение

Аватара пользователя

slant
Сообщения: 4469
Зарегистрирован: 21 июн 2017, 18:09
Решено: 95
Благодарил (а): 51 раз
Поблагодарили: 1965 раз
Контактная информация:

SWAP

#19

29 янв 2018, 17:48

Я в свое время много игрался с различными настройками свопа, и пришел к выводу... настройки по умолчанию далеко не дураки делали. :)

vm.swappiness=60 (по умолчанию) для десктопа хорошо подходит, при условии что своп вообще нужен.

Дело в том, что если поставить 1 или 10 - обычно получается ситуация из разряда "пожар в борделе во время наводнения" - память программе начинается требоваться "ПРЯМО СЕЙЧАС ВДРУГ И СРОЧНО!" а ее нету. Система резко бросается выгружать что-то в своп, но пока не закончит - выделить ничего не может. Все становится колом, и ждет пока диск прожует то что ему отдали и можно будет таки освободить часть памяти под ожидающую задачу. Часто при
этом вообще ничего делать невозможно - даже окно переключить не получается. Полный ступор DE.

А если vm.swappiness=60 - такого не происходит. Система выгружает часть памяти в своп заранее, процесс этот проходит фоном. Может где притормозки заметны и будут, но уж точно не такой общий ступор. Т.е. ставить 1 или 10 имеет смысл только тогда, когда профиль использования предполагает что выгрузка в своп - это фактически редчайшая аварийная ситуация. И нужен только как альтернатива ошибке "Out of memory". В остальных случаях, когда своп может быть использован - эта настройка больше вредит чем помогает.

Аватара пользователя

Unborn
Сообщения: 1920
Зарегистрирован: 03 сен 2016, 13:36
Решено: 24
Благодарил (а): 5 раз
Поблагодарили: 264 раза
Контактная информация:

SWAP

#20

29 янв 2018, 19:07

slant писал(а):
29 янв 2018, 17:48
vm.swappiness=60
Разрабы никогда не знают на какое железо будет установлена ОС и какие задачи будут решаться. Это значение идёт со времён, когда кто-то ещё у папы в яйцах шевелился и объём ОЗУ измерялся в Мб, а не в Гб. Значения 40% занятого при 4Мб и при 4Гб ооочень отличаются. К тому же планировщики умнее стали.
В каждом конкретном случае каждый сам решает. Рекомендацию можно дать только зная железо и что будет на нём работать. Остальное - это бестолковая болтовня.

Закрыто

Вернуться в «Параметры и оптимизация»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя