Linux swap не работает

Linux swap не работает

Здравствуйте! Работаю я с растрами в GIMP, у меня 8 гб оперативки, по сути хватает. Но приходится работать с очень большими растрами и тут оперативка долбится в потолок, но в свап не уходит. Или уходит килобайт 500. Пробовал менять vm.swappiness=60 на разные значения. Не помогает — ведет всегда одинаково. Если подождать система уходит в аут, не двигается мышь. Помогает только ресет. Дома система помощнее FX8350 ssd120 и 8 гигов — история такая ж. Раньше помню свап использовался интенсивнее. Естественно зависало но свап работал. В чем причина , кто сталкивался. Это минт или 18.04?

System:
Host: ADMIN-PC Kernel: 4.18.0-15-generic x86_64 bits: 64 compiler: gcc
v: 7.3.0 Desktop: Cinnamon 4.0.9 Distro: Linux Mint 19.1 Tessa
base: Ubuntu 18.04 bionic
Machine:
Type: Desktop Mobo: Gigabyte model: P35C-DS3R serial: BIOS: Award
v: F12 date: 06/18/2009
CPU:
Topology: Quad Core model: Intel Xeon E5440 bits: 64 type: MCP
arch: Penryn rev: A L2 cache: 6144 KiB
flags: lm nx pae sse sse2 sse3 sse4_1 ssse3 vmx bogomips: 22665
Speed: 2553 MHz min/max: 2000/2834 MHz Core speeds (MHz): 1: 2000 2: 2000
3: 2000 4: 2000
Graphics:
Device-1: NVIDIA GF108 [GeForce GT 440] vendor: ASUSTeK driver: nvidia
v: 390.77 bus ID: 01:00.0
Display: x11 server: X.Org 1.19.6 driver: nvidia
resolution: 1280×1024~60Hz
OpenGL: renderer: GeForce GT 440/PCIe/SSE2 v: 4.6.0 NVIDIA 390.77
direct render: Yes
Audio:
Device-1: NVIDIA GF108 High Definition Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel bus ID: 01:00.1
Sound Server: ALSA v: k4.18.0-15-generic
Network:
Device-1: D-Link System DGE-528T Gigabit Ethernet Adapter driver: r8169
v: 2.3LK-NAPI port: d000 bus ID: 05:00.0
IF: enp5s0 state: up speed: 100 Mbps duplex: full mac:
Drives:
Local Storage: total: 1.14 TiB used: 394.89 GiB (33.9%)
ID-1: /dev/sda vendor: Western Digital model: WD2500AAKS-00L9A0
size: 232.89 GiB
ID-2: /dev/sdb vendor: Hitachi model: HDS721010CLA332 size: 931.51 GiB
Partition:
ID-1: / size: 38.15 GiB used: 12.83 GiB (33.6%) fs: btrfs dev: /dev/sda1
ID-2: /home size: 187.11 GiB used: 49.52 GiB (26.5%) fs: btrfs
dev: /dev/sda3
ID-3: swap-1 size: 7.63 GiB used: 0 KiB (0.0%) fs: swap dev: /dev/sda2
Sensors:
System Temperatures: cpu: 33.0 C mobo: 31.0 C gpu: nvidia temp: 46 C
Fan Speeds (RPM): cpu: 0 fan-1: 829 fan-3: 952 fan-4: 936 gpu: nvidia
fan: 35%
Voltages: 12v: N/A 5v: 2.94 3.3v: N/A vbat: 2.98
Info:
Processes: 287 Uptime: 1h 59m Memory: 7.79 GiB used: 1.59 GiB (20.4%)
Init: systemd runlevel: 5 Compilers: gcc: 7.3.0 Shell: bash v: 4.4.19
inxi: 3.0.27

Источник

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

при установке системы поставил 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 и посмотри еще раз

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

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

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

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

Читайте также:  Как настроить систему линукс

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

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

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

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

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

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

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

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

В совремённых линуксах система памяти поломана по умолчанию. Надо подстраивать системные параметры, чтобы оно работало нормально.

Legioner ★★★★★ ( 11.09.21 22:53:22 MSK )
Последнее исправление: Legioner 11.09.21 22:54:18 MSK (всего исправлений: 1)

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

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

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

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

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

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

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

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

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

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

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

bugfixer ★★★★ ( 14.09.21 07:32:06 MSK )
Последнее исправление: bugfixer 14.09.21 07:32:47 MSK (всего исправлений: 1)

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 

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

bugfixer ★★★★ ( 14.09.21 07:47:45 MSK )
Последнее исправление: bugfixer 14.09.21 07:52:37 MSK (всего исправлений: 1)

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

Legioner ★★★★★ ( 14.09.21 07:59:34 MSK )
Последнее исправление: Legioner 14.09.21 08:00:05 MSK (всего исправлений: 1)

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

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

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

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

Мазохисты в чяте. Ну поставь vm.swappiness в 100

Читайте также:  Создание резервной копии linux

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

Legioner ★★★★★ ( 14.09.21 08:17:11 MSK )
Последнее исправление: Legioner 14.09.21 08:18:05 MSK (всего исправлений: 1)

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

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

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

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

> 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

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

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

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

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

Я не вам предлагал звонить, зачем вы мне пишете? )

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

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

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

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

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

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

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

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

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

Я уже писал, что крутилки есть, но конфигурация по умолчанию сломана.

какое то у тебя странное представление. Если в системе остается не используемая оперативная память, да еще и половина, на кой сбрасывать что то там в своп? Линукс системы конечно гибкие и настраиваемые, и можно юзать только свап без озу не вопрос, но зачем? 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

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

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

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

Читайте также:  Файловая система кали линукс

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

Legioner ★★★★★ ( 14.09.21 14:51:06 MSK )
Последнее исправление: Legioner 14.09.21 14:56:59 MSK (всего исправлений: 1)

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

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

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

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

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

antech ( 14.09.21 16:57:44 MSK )
Последнее исправление: antech 14.09.21 17:00:41 MSK (всего исправлений: 1)

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

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

Источник

Оцените статью
Adblock
detector