Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов. 8(977)608-78-62 adm@nixm.ru
swap
swap
Последние времена:
- RAM Linux обязательно перевалили минимум за 1Gb (ещё не так давно 256Mb было "за глаза"), нормой стало 4Gb, очень часто на типовом десктопе 8Gb или 16Gb ... про сервера здесь не говорим...
- многие переходят на быстрые твёрдотельные SSD диски.
В связи с этим очень говорят и пишут, даже очень авторитетные люди и источники, утверждают (и именно в такой формулировке):
Я думаю (IMHO ), что это принципиально неверно. И поэтому в деталях хотелось бы уточнить (и собрать из разных мест) всё о swap в этой теме:
1. обязателен ли swap?
2. какие есть способы (варианты) организации swap?
3. связано ли как-то использование swap с SSD?
4. какой размер выбирать для swap?
5. как управлять (оптимизировать) работой swap.
Если у кого есть соображения, наблюдения, опыт использования на этот предмет - поделитесь.
- RAM Linux обязательно перевалили минимум за 1Gb (ещё не так давно 256Mb было "за глаза"), нормой стало 4Gb, очень часто на типовом десктопе 8Gb или 16Gb ... про сервера здесь не говорим...
- многие переходят на быстрые твёрдотельные SSD диски.
В связи с этим очень говорят и пишут, даже очень авторитетные люди и источники, утверждают (и именно в такой формулировке):
У меня много оперативной памяти и диск SSD и именно поэтому у меня вообще нет swap и нет в нём нужды.
Я думаю (IMHO ), что это принципиально неверно. И поэтому в деталях хотелось бы уточнить (и собрать из разных мест) всё о swap в этой теме:
1. обязателен ли swap?
2. какие есть способы (варианты) организации swap?
3. связано ли как-то использование swap с SSD?
4. какой размер выбирать для swap?
5. как управлять (оптимизировать) работой swap.
Если у кого есть соображения, наблюдения, опыт использования на этот предмет - поделитесь.
Re: swap
Имеется в виду гибернация?hotmax писал(а):Ну как минимум swap нужен для "сна" наверно... Хотя это вроде и не обязательно, ведь содержимое оперативки и в файл просто пишется....
Будем считать это глупостью (IMHO ), тянущейся от Windows, который грузится так долго и занудно (как собачья песня на Луну), что MS просто вынуждены были что-то такой придумать для создания иллюзий рыночной привлекательности.
Re: swap
Хотел этот же вопрос обсудить на форумах Mint, применительно к последним Mint (особенно в связи с тем, что в последних Ubuntu в качестве swap по умолчанию устанавливается файл, а не раздел)...Olej писал(а):Если у кого есть соображения, наблюдения, опыт использования на этот предмет - поделитесь.
Но вот здесь, к примеру - Русский форум пользователей Linux Min - законченные дегенераты, ... они считают такие обсуждения флудом, отвлекающим их от обсуждения раскрасок свистелок и перделок.
Так что мнений из этого источника мы не узнаем. В принципе, жаль.
© И.В.СталинСтрана должна знать своих героев.
Последний раз редактировалось Olej 16 апр 2017, 21:52, всего редактировалось 1 раз.
Re: swap
Так ... обсудив дегенератов (остальные по ходу подтянутся ), вернёмся в тему...
Вообще без swap систем может замечательно работать. И даже весьма долго... Но это до поры, до времени...
И падать система без свап никогда не будет.
Со swap как с понятием произошла дурная история, которая тянется ещё из Windows 3.11 ... с самим термином. Но swap Linux - это не выгрузка областей памяти на диск, а отображение логических страниц RAM на сектора диска (хотя при этом может происходить и выгрузка) - виртуализации.
При активной эксплуатации (в реальных условиях, а не "на поиграться") вся доступная RAM может исчерпаться практически на 100%. И тогда система истерически ищет хоть ненадолго освободить 1-2-3 физических страниц памяти, но без swap это невозможно, система начинает искать страницы, которые нужно просто утилизировать (самые неиспользуемые). и скорость системы может снизиться на 1-2-3 и более порядков! И выгребаться из этого состояния система может 1 минуту, 10 минут и т.д. ... и в это время вы не сможете вмешаться в её работу, её реакция отбита (или почти отбита).
(такую картину можно смоделировать если в современных браузерах открывать, открывать и открывать новые закладки ... и ещё при этом не перезагружать систему 2-3-5 дней ... в ждущем режиме)
Хуже того, что даже ядро Linux в некоторых случаях (достаточно редких) может потребовать загрузки-выгрузки образа страниц RAM. И здесь будут те же проблемы.
А при доступности swap таких эффектов не возникает.
3. SSD или не-SSD здесь вообще не при чём.
Увязывание SSD в контекст разговоров про swap связано, скорее всего, с опасением испортить SSD перезаписью. Но я где-то встречал оценки, что перезапись swap на современных (последних) SSD может его убить ... но случится это, скорее всего, лет через 99 непрерывной эксплуатации.
Но нужно поискать и уточнить такие оценки специально.
4. Когда-то, на заре Linux и Windows ... да и других систем, QNX, например, во всех них рекомендовали размер swap = 2 * RAM - в 2 раза больше оперативной памяти. Но это мотивировалось тем, что они хотели расширить размер небольшой памяти!
А на сегодня задача расширения большой памяти (4-8-16Gb) не стоит. А задача - подстраховаться на короткие периоды от клинча памяти, и освободить несколько страниц (по 4Kb для 32-бит, или 64Kb для 32-бит PAE) RAM. И вовсе не нужно, как советовали в древние времена, иметь swap размером в RAM*2 - более чем достаточно просто небольшого swap, скажем в 1Gb.
1. swap обязателен.Olej писал(а): 1. обязателен ли swap?
2. какие есть способы (варианты) организации swap?
3. связано ли как-то использование swap с SSD?
4. какой размер выбирать для swap?
Вообще без swap систем может замечательно работать. И даже весьма долго... Но это до поры, до времени...
И падать система без свап никогда не будет.
Со swap как с понятием произошла дурная история, которая тянется ещё из Windows 3.11 ... с самим термином. Но swap Linux - это не выгрузка областей памяти на диск, а отображение логических страниц RAM на сектора диска (хотя при этом может происходить и выгрузка) - виртуализации.
При активной эксплуатации (в реальных условиях, а не "на поиграться") вся доступная RAM может исчерпаться практически на 100%. И тогда система истерически ищет хоть ненадолго освободить 1-2-3 физических страниц памяти, но без swap это невозможно, система начинает искать страницы, которые нужно просто утилизировать (самые неиспользуемые). и скорость системы может снизиться на 1-2-3 и более порядков! И выгребаться из этого состояния система может 1 минуту, 10 минут и т.д. ... и в это время вы не сможете вмешаться в её работу, её реакция отбита (или почти отбита).
(такую картину можно смоделировать если в современных браузерах открывать, открывать и открывать новые закладки ... и ещё при этом не перезагружать систему 2-3-5 дней ... в ждущем режиме)
Хуже того, что даже ядро Linux в некоторых случаях (достаточно редких) может потребовать загрузки-выгрузки образа страниц RAM. И здесь будут те же проблемы.
А при доступности swap таких эффектов не возникает.
3. SSD или не-SSD здесь вообще не при чём.
Увязывание SSD в контекст разговоров про swap связано, скорее всего, с опасением испортить SSD перезаписью. Но я где-то встречал оценки, что перезапись swap на современных (последних) SSD может его убить ... но случится это, скорее всего, лет через 99 непрерывной эксплуатации.
Но нужно поискать и уточнить такие оценки специально.
4. Когда-то, на заре Linux и Windows ... да и других систем, QNX, например, во всех них рекомендовали размер swap = 2 * RAM - в 2 раза больше оперативной памяти. Но это мотивировалось тем, что они хотели расширить размер небольшой памяти!
А на сегодня задача расширения большой памяти (4-8-16Gb) не стоит. А задача - подстраховаться на короткие периоды от клинча памяти, и освободить несколько страниц (по 4Kb для 32-бит, или 64Kb для 32-бит PAE) RAM. И вовсе не нужно, как советовали в древние времена, иметь swap размером в RAM*2 - более чем достаточно просто небольшого swap, скажем в 1Gb.
Последний раз редактировалось Olej 16 апр 2017, 22:26, всего редактировалось 1 раз.
Re: swap
Это ещё не всёhotmax писал(а):Спасибо за информацию.
Есть ещё вопросы относительно swap, которые а). нужно уточнять, б). нужно поискать свежую, последнюю информацию, в). экспериментально проверить на компьютерах.
Re: swap
1. Самый распространённый и популярный способ - выделение раздела диска. Это общеизвестно.Olej писал(а): 2. какие есть способы (варианты) организации swap?
2. Наверное все знают другом способе - использовании для swap файла в файловой системе. Объявлено, что в Ubuntu последних версий этот способ используется по умолчанию. Я могу предположить, что это сделано именно из-за нарастающего распространения SSD, желания облегчить их от многократной перезаписи: swap-раздел всегда находится в ограниченном числе последовательных фиксированных секторов диска, а файл в файловой системе "разбросан", не располагается в последовательных секторах, и при перезаписи "размазывается" по диску. Это предположение (IMHO ).
3. Не очень известно, что есть такой проект-модуль zRam. В случае использования zRam, swap будет находиться в специальном сжатом разделе оперативной памяти. Как утверждают, этот вариант прекрасно подойдет для нетбуков, имеющих 2Гб ОЗУ.
Подробнее см. здесь своп в оперативную память - модуль zRam.
Этот проект включен в стандартные репозитории некоторых дистрибутивов:
Это Mint 17.3:
Код: Выделить всё
olej@atom ~ $ apt search zram-*
p zram-config - Upstart job to enable zram support
Код: Выделить всё
olej@nvidia ~ $ apt search zram-*
p zram-config - Upstart job to enable zram support
Текущий используемый swap смотрим:
Код: Выделить всё
[olej@dell .ssh]$ swapon -s
Имя файла Тип Размер Исп-но Приоритет
/dev/dm-0 partition 6288892 480 -1
Последний раз редактировалось Olej 17 апр 2017, 00:56, всего редактировалось 1 раз.
Re: swap
Активность текущего использования swap смотрим легко:Olej писал(а):5. как управлять (оптимизировать) работой swap.
Код: Выделить всё
[olej@dell ~]$ free
total used free shared buff/cache available
Mem: 8160932 3855356 229272 198868 4076304 3708128
Swap: 6288892 484 6288408
Этот параметр отображается, и по чтению и по записи:
Код: Выделить всё
[olej@dell ~]$ cat /proc/sys/vm/swappiness
60
Если его уменьшить, это означает, что ядро начнёт агрессивно использовать swap когда останется 15% доступной RAM:
Код: Выделить всё
[root@dell ~]# echo 15 > /proc/sys/vm/swappiness
[olej@dell ~]$ cat /proc/sys/vm/swappiness
15
Но это можно проделать только с терминала, зарегистрированного как root, простое перенаправление с sudo здесь не проканывает:
Код: Выделить всё
[olej@dell ~]$ sudo echo 10 > /proc/sys/vm/swappiness
bash: /proc/sys/vm/swappiness: Отказано в доступе
Код: Выделить всё
[olej@dell ~]$ echo 10 | sudo tee /proc/sys/vm/swappiness
[sudo] пароль для olej:
10
[olej@dell ~]$ cat /proc/sys/vm/swappiness
10
В принципе, для SSD, пожалуй, этот параметр можно установить, например, в swappiness = 5, чтобы swap включался как можно позже и только в экстренных случаях.Olej писал(а): 3. связано ли как-то использование swap с SSD?
При достаточно большой RAM и малых значениях swappiness реакция системы субъективно будет быстрее.
Re: swap
Но если изменить значение swappiness как показано выше, то изменения будут действовать только до следующей перезагрузки, после чего опять восстановится умалчиваемое значение.Olej писал(а): В ядре Linux есть такой параметр swappiness, который устанавливает значение в % (значение от 0 до 100) сколько должно в % остаться свободной памяти, когда начинать активно использовать виртуализацию страниц в swap.
Этот параметр отображается, и по чтению и по записи:
Чтобы желаемое вами значение для swappiness устанавливалось сразу после загрузки, нужно в конфигурационный файл /etc/sysctl.conf строку вида:
Код: Выделить всё
vm.swappiness=15
P.S. Если не хотите портить /etc/sysctl.conf, можно то же записать в любой файл (а ещё лучше добавить свой файл) в:
Код: Выделить всё
[olej@dell Privat.bank]$ ls /usr/lib/sysctl.d
00-system.conf 10-default-yama-scope.conf 50-coredump.conf 50-default.conf 60-libvirtd.conf