LinuxForum.Fans
Тема

Пара вопросов по swap

Автор: lone_wolf 52 сообщений 2252 просмотров
16.02.2018 17:33 #428007

В общем есть 2 вопроса:
1. Что лучше/надо использовать под swap раздел или же файл?
2. Какой объём swap нужно делать для сервера?

Мои мысли таковы:
Лучше использовать раздел ибо если использовать файл то будет дополнительная прослойка, а так swap будет размечаться напрямую на своей fs
Для десктопа понятно (1,5-2)*RAM (1,5 или 2 зависит от объёма RAM на компе) это понятно. А вот для сервера думаю 0,5*RAM *SCRATCH* Было дело в сети встречал такое же мнение *DRINK*

16.02.2018 18:49 #428008

lone_wolf, :) Размр под SWAP определяте сами. Это как вам удобно.
Если сервер достаточно мощный, то вообще подкачку не делать.
Если же решили заняться своппингом, то делайте разделом.

16.02.2018 21:03 #428010
"Wolfenberg" написал:
Если сервер достаточно мощный, то вообще подкачку не делать.

Тему создать я решил после прочтения статьи на хабре, в которой рекомендуют какой бы не был сервер создавать подкачку.
Добавлено: 16.02.2018 20:03:10

"Wolfenberg" написал:
Размр под SWAP определяте сами. Это как вам удобно.

это да, у каждого свой взгляд на данную тему.

16.02.2018 22:28 #428011
"lone_wolf" написал:
Для десктопа понятно (1,5-2)*RAM

М.б. для ноута - спящий режим и т.п... Сервер не спит.... , но - подкачка бывает нужна... Файл - да, ИМХО, прослойка... лучше уж раздел, но бывают ситуациии :D ИМХО, лучше раздел, хотя.....

16.02.2018 22:59 · отредактировано #428012

Подкачка нужна. Сколько бы ни было памяти, возможен вариант, что кто-нибудь ее всю съест. И тут начинается разница: без swap система резко встает колом так, что невозможно что-либо сделать. А по мере его заполнения система начинает заметно замедляться, но так, что можно, например, найти и прибить взбесившийся процесс.
С размером тоже просто: если он по сравнению с ram маловат, то от него и пользы мало. Если велик, то система слишком затормозится задолго до его полного заполнения. Так что размер 50...200% памяти считается разумным.

17.02.2018 18:05 #428016

"s.xbatob" написал:
Подкачка нужна. Сколько бы ни было памяти, возможен вариант, что кто-нибудь ее всю съест.
Верно.
Но подкачка нужна не только для этого. Для гипернейта, кстати, и желательно не в файл, а на отдельный диск. И вот в этом случае размер подкачки должен быть равен объему памяти. А вообще своп рассчитывался всегда так VSwap=VRAM*2. Ограничения на использование памяти явно вылезают только в оффтопике, а в пингвинарии такого никогда не наблюдалось (в x64 - по умолчанию, в x686 - при ядре PAE).
Добавлено: 17.02.2018 22:05:30

"Oleg65" написал:
Сервер не спит....
Да, да. Внезапное отключение ЭЭ, совсем не влияет на работу сервера, особенно, когда длится пару дней (Какой UPS такое перенесет?). В этом случае не в спящий, и не выключать, а в гипернейт лучше переводить, чтобы сохранить все, что было на момент "ooops" UPS'а.
17.02.2018 20:13 · отредактировано #428018
"urfin" написал:
Для гипернейта, кстати, и желательно (1) не в файл, а на отдельный диск. И вот в этом случае (2) размер подкачки должен быть равен объему памяти.

Источник сих двух "мудрых" утверждений можно узнать?
Ежели что, оба два противоречат официальной документации ядра.

PS. В части "на отдельный диск" vs. "файл/раздел на том же диске" -- не противоречат.
Добавлено: 17.02.2018 20:13:57

"lone_wolf" написал:
Лучше использовать раздел ибо если использовать файл то будет дополнительная прослойка, а так swap будет размечаться напрямую на своей fs

Точно будет? Будет именно при использовании файла подкачки (сейчас речь не про создание файла подкачки)?
Задумайтесь, как бы из такого файла могла восстанавливаться система, возвращаясь из гибернации, если бы работала с ним используя в качестве прослойки ФС?

17.02.2018 20:14 #428019

"bormant" написал:
В части "на отдельный диск" vs. "файл/раздел на том же диске" -- не противоречат.
Ага, я в принципе раздел тоже имел в виду.
А почему не в файл, а в раздел/диск, чтобы меньше хлама валялось. И представьте себе файлик в 64 или в 128 гигов? А если еще больше?

P.S. А почему лучше другой диск для сервера - это быстродействие. Если же брать раздел на том же диске, где и система, то скорость восстановления немного скучней будет.
17.02.2018 20:29 #428020
"bormant" написал:
Точно будет? Будет именно при использовании файла подкачки (сейчас речь не про создание файла подкачки)?
Задумайтесь, как бы из такого файла могла восстанавливаться система, возвращаясь из гибернации, если бы работала с ним используя в качестве прослойки ФС?

Да согласен, оно бы не работало *SCRATCH*

19.02.2018 08:22 #428055

Лучше в файле делать. Разницу с разделом вы не заметить, зато сможете гибко менять размер подкачки.
В целом, если система построена нормально и свап не требуется для работы, можно его и отключить. В крайнем случае система не "встанет колом", а избавится от жрущего процесса через OOM kill.

19.02.2018 18:32 #428070

"Vascom" написал:
зато сможете гибко менять размер подкачки
Есть вариант без swapoff/swapon?
19.02.2018 21:25 #428092

bormant написал:
[quote="Vascom"] зато сможете гибко менять размер подкачки
Есть вариант без swapoff/swapon?[/quote]
Нет. А чем он не устраивает?
19.02.2018 23:09 #428095

"Vascom" написал:
Нет. А чем он не устраивает?
Просто не понял, в чем в этом случае гибкость изменения размера подкачки.
С "зато сможете менять размер подкачки" не спорю. Но вот назвать гибкостью swapoff / swapon язык не повернется.
Кстати, что будет, когда ФС фрагментирована настолько, что одним куском файл желаемого размера выделить нельзя, корректно этот случай обрабатывается (не могу вспомнить)?
20.02.2018 11:10 #428103
bormant написал:
Кстати, что будет, когда ФС фрагментирована настолько, что одним куском файл желаемого размера выделить нельзя, корректно этот случай обрабатывается (не могу вспомнить)?

Непрерывность и не требуется, нужно только, чтобы все блоки были аллокированы на диске.
И, похоже, вы неправильно понимаете назначение swapon и swapoff. Они лишь включают и выключают использование предварительно подготовленных областей подкачки. А готовить их надо с помощью mkswap
И заодно про фрагментацию: она фрагментируется "настолько" только если места совсем мало, у файловой системы дурная структура (как у FAT) или у драйвера глупая стратегия работы со свободным местом. В общем, это "не наши проблемы"

20.02.2018 12:00 · отредактировано #428105

"s.xbatob" написал:
похоже, вы неправильно понимаете назначение swapon и swapoff
Правильно-правильно, или вы умеете сделать mkswap на неотключенном swapspace ^) ?
А в остальном все так, mkswap готовит список аллоцированных блоков, дальнейшее обращение идет по этому списку мимо ФС. Разреженный (sparse) файл использовать под swapfile нельзя.

Потому и говорю -- "гибко" слишком громко сказано. Если только добавить еще несколько свап-файлов, так и к разделу их добавить тоже никто не помешает. Единственно, что в голову приходит, при малом размере свап-раздела и интенсивной на него нагрузке есть риск получить в этом месте поврежденную область. (По крайней мере диски "протёртые до дыр" в области $MFT на NTFS-разделе в руках держать приходилось ^) ) Но свап-фалы регулярно гонять по диску не сильно проще ^)
20.02.2018 13:35 #428108

bormant, нет никаких причин изменять его на лету. Да и вообще особых причин его изменять нет. Если хотите увеличить -- создайте и подключите ещё один.
Но если он у вас используется регулярно -- задумайтесь о добавлении ram

20.02.2018 13:40 #428109

s.xbatob,
не надо писать это мне, пишите Vascom, это его идея "гибко менять размер подкачки" (сообщение #10).

20.02.2018 14:19 #428111

То есть протереть диск разделом swap - вам не страшно?
Конечно гибкость ограниченная и не "на лету", но всё равно она выше, чем при исмользовании раздела. Ведь чтобы увеличить или уменьшить раздел вам придётся отрезать куски от обычных разделов.

Ну и опять же: не надо закладываться на использование swap вообще. Если он используется - что-то в системе не так и надо добавлять ОЗУ.

20.02.2018 14:26 #428112

bormant, Нет уж, реплика была именно вам! Идеи vascom неоднозначные, но разумные. Ваши же -- на грани каприза.

20.02.2018 15:21 #428113
"s.xbatob" написал:
Идеи vascom неоднозначные, но разумные. Ваши же -- на грани каприза.

Какие такие мои идеи? Мои были только замечания про "гибко" в той части, что "гибко" не получится.

swap file:
1. смена размера: swapoff, dd/rm/..., mkswap, swapon. Если причиной стала нехватка памяти, то этот сценарий из-за необходимости swapoff не сработает, с этим-то никто не спорит, надеюсь.
2. добавление места: dd, mkswap, swapon

swap partition:
1. смена размера: в меньшую сторону -- ровно также, fdisk вместо dd, вернуть место для полезного использования сложнее, но сколько там того места?
2. добавление места: добавим swap file, см. п.2 выше.

Вот про это вот и было замечание -- ровно то ж на то ж и выходит.
Если речь об экстремально малом носителе, возможно, предмет стоил бы какого-то обсуждения...

Войдите или зарегистрируйтесь, чтобы ответить.