LINUX.ORG.RU

в системе не используется swap

 


0

1

при установке системы поставил swap 4Gb при озу 8Gb.Сейчас решил проверить как используется swap. Вот вывод free -h:

               total        used        free      shared  buff/cache   available
Mem:           7.2Gi       3.2Gi       2.9Gi       237Mi       1.2Gi       3.6Gi
Swap:          4.0Gi          0B       4.0Gi

Почему система не использует swap?


Начти компилировать chromium и посмотри еще раз

Kolins ★★★
()

Почему система не использует swap?

А почему она должна его использовать, когда половина ОЗУ свободна?

sudopacman ★★★★★
()

Почему система не использует swap?

Мало нагрузил.

Aspid
()

Потому что ОЗУ хватает, свап это подкачка, когда озу не хватает. Ну ещё для гибернации, но тогда он должен быть не меньше озу.

piwww ★★★★
()
Ответ на: комментарий от piwww

когда озу не хватает.

не только, со временем туда попадает что то редкоиспользуемое или еще какой мусор даже когда озу не занято и на 10%

yandrey
()
Ответ на: комментарий от piwww

свап это подкачка, когда озу не хватает

нет

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

нормальные системы кидают в swap все idle не зависимо от объема свободной ram.

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

ddidwyll ★★★★
()

swap 4Gb при озу 8Gb

               total        used        free      shared  buff/cache   available
Mem:            3930         518        2735          38         675        3154
Swap:           4004           0        4004
anonymous
()

Зачем? Что-то не работает? cat /proc/sys/vm/swappiness Какое значение? Если, например, выставить 1, то система начнет юзать swap только тогда, когда совсем-совсем все на пределе и без него никак.

anonymous
()
Ответ на: комментарий от Legioner

https://github.com/allwinner-zh/media-codec можете подсказать в чем проблема сборки? создал Makefile запстил на сборку и тут же сыпятся фатальные ошибки. не могу понять в чем дело. не посмотрите опытным взглядом?

anonymous
()
Ответ на: комментарий от sudopacman

а вы случайно не спец в сборке программ? или тут спецы только по swap? можете помочь?

anonymous
()
Ответ на: комментарий от Legioner

система памяти поломана по умолчанию

Только не в том месте, о котором ты говоришь. Когда Free навалом - своппинг не нужен.

anonymous
()
Ответ на: комментарий от Legioner

Своппинг нужен абсолютно всегда.

Судя по моей практике он нужен только чтобы обмануть overcommit без особых рисков. Если Вам приходится иметь дело с серьезной swap-in/out activity - Вы что-то делаете не так. Имхо.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

обмануть overcommit без особых рисков

Зачем обманывать, если есть overcommit=1? Это позволяет выделять терабайты.

anonymous
()
Ответ на: комментарий от anonymous

Зачем обманывать, если есть overcommit=1? Это позволяет выделять терабайты.

Ключевое слово - «без особых рисков». И админов дёргать лишний раз не хочется.

bugfixer ★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от Ros
free -m
               total        used        free      shared  buff/cache   available
Mem:           32096        2744       26848         130        2503       28804
Swap:           8215           0        8215

uptime
uptime
 07:39:35 up 12 days, 44 min,  1 user,  load average: 0,03, 0,01, 0,00

sysctl -a | grep swappiness
vm.swappiness = 20
anonymous
()
Ответ на: комментарий от anonymous

Мелочи какие. Конкретный пример - на занятой машинке с 256Gb RAM в неподходящий момент перловый скрипт отжирает гигов 50 и пытается форкнуть мелкую тулзню. И алё…

bugfixer ★★★★
()
Последнее исправление: bugfixer (всего исправлений: 1)
Ответ на: комментарий от bugfixer

Если в свопе 0, значит система работает некорректно. Исключения - встраиваемые системы, в которых очень ограниченное число перезаписей блоков (а то и вовсе R/O диски).

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Если в свопе 0, значит система работает некорректно.

Что-то там всегда будет болтаться. Но если vmstat показывает серьезную swap-in/out activity - что-то не так.

bugfixer ★★★★
()
Ответ на: комментарий от bugfixer

Что-то там всегда будет болтаться.

В этом и проблема современного линукса - в нём не болтается ничего, пока вся память не кончится. Тупо по нулям до последнего момента.

Legioner ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Оно из коробки должно быть настроено как положено. Причём ещё совсем недавно всё работало нормально. На той же RHEL 7 проблем нет, стоит рядом на сервере, своп забивает как и положено. А на совремённой Fedora уже сломано.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Оно из коробки должно быть настроено как положено.

Бьюсь об заклад - ни тот, ни другой с условным «интерпризе» даже близко дело не имел, нет? Это не наезд, правда.

bugfixer ★★★★
()
Ответ на: комментарий от Legioner

Звоните в федору, или что у вас там.

В целом у всех свои предпочтения по этому вопросу.

> sysctl vm.swappiness
vm.swappiness = 1
> free -hm
               total        used        free      shared  buff/cache   available
Mem:            15Gi       2.2Gi        10Gi       495Mi       3.0Gi        12Gi
Swap:           31Gi          0B        31Gi

На своих тачках я стараюсь иметь количество физической памяти ≈ RSS

vasily_pupkin ★★★★★
()
Ответ на: комментарий от bugfixer

Я не знаю, что такое условный интерпризе. На тех серверах, с которыми я работаю, крутятся реальные сервисы, обслуживающие реальных людей по всей стране. Насколько этот интерпризе условный в твоём понимании, я без понятия.

Legioner ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Да звонил уже, крутилки есть, крутить можно, но по умолчанию всё сломано во имя фриков, которые боятся свопа.

Legioner ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Звоните в федору, или что у вас там.

У нас дежурные админы. И technical operations 24x7. И RHEL support (но это не так оперативно). Но к чему это всё? Оно как то мне поможет решить мои проблемы? Вы мелко мыслите.

bugfixer ★★★★
()
Ответ на: комментарий от Legioner

Я не знаю, что такое условный интерпризе. На тех серверах, с которыми я работаю, крутятся реальные сервисы, обслуживающие реальных людей по всей стране.

ЗдОрово! Тогда Вы должны понимать о чем я.

Насколько этот интерпризе условный в твоём понимании, я без понятия.

Я бы вводил метрику «стоимость простоя». «Письками» меряться не буду.

bugfixer ★★★★
()
Ответ на: комментарий от Legioner

в нём не болтается ничего, пока вся память не кончится

Это не так. То есть по крайней мере не до последнего момента.

Можно повышать ватермарки через vm.watermark_scale_factor - и своппинг начнется сильно заранее при нехватке памяти.

см

https://github.com/torvalds/linux/blob/v5.14/mm/vmscan.c#L121

https://github.com/torvalds/linux/blob/v5.14/mm/vmscan.c#L2493

anonymous
()
Ответ на: комментарий от Legioner

в нём не болтается ничего, пока

объем свободной памяти не опустится ниже LOW_WMARK. После этого kswapd0 будет вышужден либо удалять кэш, либо свопить. Ватермарки можно повышать, и соотношения file/anon можно менять. В чем ваша проблема?

anonymous
()
Ответ на: комментарий от Legioner

какое то у тебя странное представление. Если в системе остается не используемая оперативная память, да еще и половина, на кой сбрасывать что то там в своп? Линукс системы конечно гибкие и настраиваемые, и можно юзать только свап без озу не вопрос, но зачем? yalef у тебя что то не работает? памяти хватает, настолько что в своп даже никто не пытается лезть, что ты еще хочешь? Да иногда бывает что озу свободной еще дофига а система лагает потому что игнорирует ОЗУ и активно юзает свап, это проблема, но у тебя ее пока не последовал вредным советам еще нет. free -h total used free shared buff/cache available Mem: 7,5Gi 4,3Gi 341Mi 863Mi 3,0Gi 2,2Gi Swap: 0B 0B 0B

и да пердически я отхватываю гемороя из за отсутсвия свапа.

antech
()
Ответ на: комментарий от antech

Если в системе остается не используемая оперативная память, да еще и половина, на кой сбрасывать что то там в своп?

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

На всякий случай поясню. Если что-то лежит в свопе, это не значит, что оно уже выкинуто из оперативной памяти. Это просто значит, что его можно выкинуть из оперативной памяти.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

А не скрипеть-тормозить, выгружая всё в своп в последний момент

Ничего не скрипит даже при активном многопоточном своппинге

https://www.youtube.com/watch?v=g9GCmp-7WXw

https://www.youtube.com/watch?v=1uhcZwuvXLI

https://www.youtube.com/watch?v=c5bAOJkX_uc

https://youtu.be/QquulJ06dAo

Что я делаю не так?

hakavlad ★★★
()
Ответ на: комментарий от Legioner

тебе в любом случае придется скрипеть тормозить выгружая в своп, но одно дело тормозить при выделении памяти под процесс, а у тебя просто так будет скрипеть тормозить свапом по таймеру а вдруг когда нибудь через пару лет, память кончится и тогда я его быстро удалю, но если память действительно кончится, тебе придется выгружать в своп уже и новый процесс а потом считывать старый. Вы хотите не своп, а рейд1 на рамдиске и hdd. нуда ладно удачи вам в ваших начинаниях на нвме может все и не так плохо будет. Разумнее прибить процесс который вдруг захотел 100гигов, чем свопить это, как и вообще не запускать то что требует памяти больше чем у тебя есть.

antech
()
Ответ на: комментарий от hakavlad

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

ддр4 до 128г на одну плашку….. ну какой нафиг своп, о чем вы

antech
()
Последнее исправление: antech (всего исправлений: 1)
Ответ на: комментарий от antech

к сожалению без swap не обойтись сейчас. логика ядра и программ на нем завязана. программы будут искать swap. свап зло? да зло. но нельзя взять и просто так отключить swap. может в 11 версии ядра его уже не будет, но пока что до этого далеко.

anonymous
()
Ответ на: комментарий от anonymous

ну вот я просто взял его и отключил. и все программы работают и ядра со своей логикой. что я делаю не так? Проблемы дейсвительно начинаются когда кончается память. но я просто могу зарезать юзверю под которым сижу количество памяти и все станет совсем незаметно.

antech
()
Ответ на: комментарий от antech

тебе в любом случае придется скрипеть тормозить выгружая в своп

Если всё было выгружено заблаговременно, то не придётся.

у тебя просто так будет скрипеть тормозить свапом по таймеру

Компьютер не используется 90% времени, выгрузить ничего не тормозя времени более чем достаточно.

Вы хотите не своп, а рейд1 на рамдиске и hdd.

Мы хотим, чтобы всё работало, как в былые времена.

Разумнее прибить процесс который вдруг захотел 100гигов, чем свопить это, как и вообще не запускать то что требует памяти больше чем у тебя есть.

Нет, это не разумней. Разумней не мешать мне работать, а я сам решу, сколько мне гигов нужно и что прибить. Всё, что требуется от ОС - обеспечить это.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Там нету тригера «заблаговремено» есть по таймеру. если к данным никто не обращатся в течении цати секунда то выгрузить в своп. И случаться это будет внезапно как понос.

Компьютер не используется 90% времени,

конечно пока он свопится попробуйка поиспользуй ) его своп использует а ты подождешь.

antech
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.