Настройка SWAP в Linux Mint 20

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 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 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
Свежий Ветер
Сообщения: 104
Зарегистрирован: 16 янв 2017, 14:13
Благодарил (а): 33 раза
Поблагодарили: 24 раза
Контактная информация:

Настройка SWAP в Linux Mint 20

#1

20 май 2021, 00:28

Приветствую, правобитные!
На свежеустановленном 20.1 минте под циннамоном оказалось невозможно стандартными методами установить нужный параметр swapiness
Для сомневающихся в том, что это нужно - комп старенький, памяти всего 2 гига и первый же запуск браузера вызывает перемещение данных в своп. Жесткий диск медленный, система начинает тупить не по детски. Опыт показал, что какую легкую систему не ставь, хоть паппика, один черт браузеры жрут всю память и значение порога обращения к своп стоит уменьшать, чтобы хоть как-то комфортно ковыряться в паре-тройки вкладок и смотреть кинчики. А для чего нужны еще слабые машинки? не в автокадах же сидеть.
Так вот. Что я делал раньше и что заведомо работает на соседней машине под 19, например, минтом.
Первый способ - простая команда, устанавливающее значение порога и по заверению интернетов, работающая после перезагрузки -
sudo sysctl -w vm.swappiness=10.
передергивание свопа посредством .. off - .. on и последующая проверка состояния через cat /proc/sys/vm/swappiness показывает, что параметр меняется. Но, до перезагрузки вопреки обещанному.
Второй известный способ - редактирование файла /etc/sysctl.conf путем добавления в конце записи vm.swapiness=10 так же после перезагрузки не срабатывает.
Возможная причина - я впервые доверился штатному установщику и дал ему самому стереть диск и установить минт. В результате у меня один раздел эфи и расширенный раздел на остальное пространство диска с логическим домашним разделом минта. Свопа как физического раздела нет, походу, его при запуске система виртуализирует на свободном пространстве домашнего раздела. Что-то мне подсказывает, что даже если я создам сам своп-раздел, имеющиеся настройки не дадут мне с ним работать.
Ваше мнение, красноглазики )
Глаза боятся, а руки - крюки.

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

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

Настройка SWAP в Linux Mint 20

#2

20 май 2021, 01:09

Свежий Ветер писал(а):
20 май 2021, 00:28
Для сомневающихся в том, что это нужно - комп старенький, памяти всего 2 гига и первый же запуск браузера вызывает перемещение данных в своп. Жесткий диск медленный, система начинает тупить не по детски.
Вот как раз в этом случае выставление swapiness 10 - не слишком то поможет, скорее ухудшит ощущения.

Когда система имеет этот параметр равным 10 - она будет скидывать в своп данные максимально поздно, когда уже памяти ни на что другое не хватает. Беда в том, что это неплохо работало, пока размеры данных которые скидывались в своп исчислялись максимум десятками мегабайт за раз. На это уходило несколько секунд, максимум 5-10, и переждать полный ступор системы это время было еще как-то терпимо. А он именно что полный в таком случае.

Но на современных системах, даже если у вас два гига памяти - система будет хотеть выгрузить этак мегабайт 300-500 за раз в подобном случае. А это уже не 5-10 секунд, а все 30-60, особенно когда диск не быстрый. Вот здесь уже имеет смысл не доводить до самой крайности, и давать системе выгрузить часть данных в своп РАНЬШЕ. Чтобы она в этот момент оставалась хотя бы частично доступной. Ведь сам процесс выгрузки полностью систему не блокирует - блокирует ожидание возможности освободить блоки памяти которые сейчас еще не в свопе и как раз пишутся. Потому если они окажутся в свопе раньше (заранее) - то системе не придется ждать их записи - достаточно будет просто удалить из памяти. А это намного быстрее.

Тут надо еще понимать, что если часть памяти попала в своп - это не значит что она уже сразу удалена из ОЗУ в тот же момент - это не так работает. Вообще - система виртуальной памяти устроена гораздо сложнее чем "два сообщающихся сосуда где жидкость переливается". Так что имея недостаток ОЗУ - при нынешних соотношениях объемов оперативной памяти и скоростей HDD выгоднее оставить swappines в покое на 60. И крутить немного другие параметры: vm.vfs_cache_pressure, vm.dirty_background_ratio, vm.dirty_ratio. Толку будет гораздо больше. Добиваться надо того, чтобы система начинала писать редко используемые страницы в своп заранее, и фоном. А не в последний момент - вешаясь при этом наглухо.

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

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

Whowka
Сообщения: 1899
Зарегистрирован: 20 июл 2018, 19:50
Решено: 13
Откуда: Питер
Благодарил (а): 777 раз
Поблагодарили: 949 раз

Настройка SWAP в Linux Mint 20

#3

20 май 2021, 01:30

Свежий Ветер,
slant писал(а):
20 май 2021, 01:09
это неплохо работало, пока размеры данных которые скидывались в своп исчислялись максимум десятками мегабайт за раз
Во, вот именно на "это" я и натыкался в гуглях. Но не правильно понял: не железо слабое, а данные большие :smile:

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

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

Настройка SWAP в Linux Mint 20

#4

20 май 2021, 07:12

Свежий Ветер писал(а):
20 май 2021, 00:28
Свопа как физического раздела нет, походу, его при запуске система виртуализирует на свободном пространстве домашнего раздела.
Должен был создаться файл /swapfile
ИзображениеИзображение

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

Автор темы
Свежий Ветер
Сообщения: 104
Зарегистрирован: 16 янв 2017, 14:13
Благодарил (а): 33 раза
Поблагодарили: 24 раза
Контактная информация:

Настройка SWAP в Linux Mint 20

#5

20 май 2021, 20:21

rogoznik писал(а):
20 май 2021, 07:12
Должен был создаться файл /swapfile
Да, есть. Возможно, его параметры прописываются не там, где указано выше, когда система обращается к реальному разделу. В общем, пока решения нет.
Глаза боятся, а руки - крюки.

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

Автор темы
Свежий Ветер
Сообщения: 104
Зарегистрирован: 16 янв 2017, 14:13
Благодарил (а): 33 раза
Поблагодарили: 24 раза
Контактная информация:

Настройка SWAP в Linux Mint 20

#6

20 май 2021, 20:31

slant писал(а):
20 май 2021, 01:09
выгоднее оставить swappines в покое на 60
Не буду сильно спорить, но по личному опыту все же хотел бы повторить то, что делал десятки раз на таких же слабых машинах, и при наличии быстрой кнопочки со скриптом очистки свопа и пониманием источника тормозов работать было ощутимее комфортно. Ну, как для привыкших к ручной коробке передач на авто.
Попробую перефразировать задачу: Хочу отпилить себе ногу, но она теперь почему-то не пилится ))

Добавлено.
Подкинул всего полгига памяти, блин, уже прямо намного лучше. Все же активация свопа на пределе свободной оперативки - не айс. Ладно, согласен, что 10 - мало, но хоть 40 бы. А то начинает тупить с самой загрузки.
Глаза боятся, а руки - крюки.

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

Whowka
Сообщения: 1899
Зарегистрирован: 20 июл 2018, 19:50
Решено: 13
Откуда: Питер
Благодарил (а): 777 раз
Поблагодарили: 949 раз

Настройка SWAP в Linux Mint 20

#7

20 май 2021, 20:40

Свежий Ветер писал(а):
20 май 2021, 20:31
Хочу отпилить себе ногу, но она теперь почему-то не пилится
Дык может для свапфайла пилу насмерть, гвоздями, прибили :smile: и "vm.swapiness=10" вааще не работает. Может создать самому свап-раздел? Так-сказать, воссоздать условия, когда пила ещё не была прибита :smile:

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

Автор темы
Свежий Ветер
Сообщения: 104
Зарегистрирован: 16 янв 2017, 14:13
Благодарил (а): 33 раза
Поблагодарили: 24 раза
Контактная информация:

Настройка SWAP в Linux Mint 20

#8

20 май 2021, 20:42

Whowka писал(а):
20 май 2021, 20:40
Может создать самому свап-раздел?
,
Неспортивно )) Я и это могу победить, запуская скрипт при загрузке ) Но надо же до истины докопаться ) Тем более, я на али уже двухгиговую планку за 370 рупий присмотрел.
Глаза боятся, а руки - крюки.

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

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

Настройка SWAP в Linux Mint 20

#9

21 май 2021, 01:34

Свежий Ветер писал(а):
20 май 2021, 20:31
Попробую перефразировать задачу: Хочу отпилить себе ногу, но она теперь почему-то не пилится ))
Да я собственно отвечал не по задаче непосредственно, а давал справку - "что если кроссовки малы - не ногу пилить надо, а кроссовки растягивать. Если уж нормальных нету." :) А почему не пилится - фиг его знает. Начинать надо с общения с утилитой sysctl - т.к. обычно именно через нее выполняется установка этих переменных из файла при загрузке системы. Выяснить работает ли установка вручную но через нее - и там уже смотреть по результатам. Для установки переменных надо вызывать через sudo, для чтения - можно без него. Примерно так:

sysctl vm.swappiness - посмотреть текущее значение.
sudo sysctl vm.swappiness=10 - установить новое.

Далее проверить, что получается при вызове sudo sysctl -p - должен перечитать и установить значения из файла конфигурации....

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

madesta
Сообщения: 2018
Зарегистрирован: 11 июн 2017, 21:47
Решено: 30
Откуда: BY
Благодарил (а): 79 раз
Поблагодарили: 434 раза
Контактная информация:

Настройка SWAP в Linux Mint 20

#10

21 май 2021, 04:08

У меня sudo sysctl -w vm.swappiness=10 или sudo sysctl vm.swappiness=10 тоже сохраняются только до перезагрузки. Всю жизнь делал sudo xed /etc/sysctl.conf и в конце вписывал значение (своё) vm.swappiness = 15
Не могу объяснить почему с пробелами, но после sudo sysctl vm.swappiness=10 терминал выводит тоже с пробелами: vm.swappiness = 10
2 Гб оперативной + Cinnamon + медленный диск + комфортно ковыряться в 2-3 вкладках браузера - это, ИМХО, из области мечтаний. Не верю, что в Cinnamon 2GB recommended for a comfortable usage, всегда казалось, что нужно минимум 4.
Мой vm.swappiness = 15 выбирался из соображения, чтобы при 4 Гб мозгов + xfce свободной оперативки оставалось бы столько, сколько потребляется в спокойном состоянии когда ни одна из прикладных программ не запущена. У автора с его 2 Гб + Cinnamon действительно, как пишет slant, лучше вообще vm.swappiness не трогать.

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

Автор темы
Свежий Ветер
Сообщения: 104
Зарегистрирован: 16 янв 2017, 14:13
Благодарил (а): 33 раза
Поблагодарили: 24 раза
Контактная информация:

Настройка SWAP в Linux Mint 20

#11

21 май 2021, 10:24

Перепроверю вечером дома на том самом древнем ноуте, сейчас поэксперементировал на рабочем, действительно, пробелы имеют значение. Вполне вероятно, что ранее я пользовался правильным источником и прописывал vm.swappiness=скоконадо без пробелов. Камраду madesta медаль за внимательность.
Хотя, судя по моему де тексту, вводил без пробелов.. В общем, вечером проверю.
Глаза боятся, а руки - крюки.

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

Автор темы
Свежий Ветер
Сообщения: 104
Зарегистрирован: 16 янв 2017, 14:13
Благодарил (а): 33 раза
Поблагодарили: 24 раза
Контактная информация:

Настройка SWAP в Linux Mint 20

#12

22 май 2021, 00:40

Нее. Вводил правильно. Но со свопом в виде файла не работает.
Глаза боятся, а руки - крюки.

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

zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

Настройка SWAP в Linux Mint 20

#13

24 май 2021, 14:51

Свежий Ветер писал(а):
22 май 2021, 00:40
Нее. Вводил правильно. Но со свопом в виде файла не работает.
Ты это должен зафиксировать в конфиге, иначе так и будет работать до перезагрузки.
Примечание: sysctl -w применяет параметры в рамках текущей сессии, после перезагрузки вернутся значения по умолчанию.
чтоб поменять конфигурацию перманентно - нужно добавь строчки со своими значениями
КОД: ВЫДЕЛИТЬ ВСЁ

vm.swappiness = XX
vm.vfs_cache_pressure = YY
в /etc/sysctl.conf, чтоб они вычитывались при каждой загрузке
Смотри тут viewtopic.php?t=173&hilit=swappiness
А мог бы стать нормальным человеком...

Ответить

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

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

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