Автор Тема: Как в Альте правильно создать swap ?  (Прочитано 109289 раз)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Как в Альте правильно создать swap ?
« Ответ #45 : 11.09.2018 13:34:36 »
Ну вообще-то относительно легко:
Проверять через cron: если SwapCached меньше половины MemFree, то переместить своп в память.

Зачем?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #46 : 11.09.2018 14:37:52 »
Ну вообще-то относительно легко:
Проверять через cron: если SwapCached меньше половины MemFree, то переместить своп в память.

Зачем?

Ну если так хочется... :-)
Когда закрываю все, что занимает память, подкачка не освобождается.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Как в Альте правильно создать swap ?
« Ответ #47 : 11.09.2018 16:12:41 »
ну дак путь бы оно валялось в свопе - кушать не просит...
линукс вумный - быстрее юзера разберется, что тащить в оперативку в этом случае и когда, а так только бесполезный расход ресурсов на таскание туда-сюда...

Оффлайн S3R_sqrT

  • Завсегдатай
  • *
  • Сообщений: 323
Re: Как в Альте правильно создать swap ?
« Ответ #48 : 13.09.2018 01:04:37 »
ну дак путь бы оно валялось в свопе - кушать не просит...
линукс вумный - быстрее юзера разберется, что тащить в оперативку в этом случае и когда, а так только бесполезный расход ресурсов на таскание туда-сюда...
Дело в том, что если все закрыто и память почти вся свободна, свап можт быть полным и если память заполнится, в свапе места не будет! оно просто тупое! эта штука н понимает когда данные в свапе не нужны, в итоге, свап переполняется, ЖД работает перегружено и все жутчайше тормозит, выход жесткое выключение ноута и потеря несохраненных данных.

Оффлайн S3R_sqrT

  • Завсегдатай
  • *
  • Сообщений: 323
Re: Как в Альте правильно создать swap ?
« Ответ #49 : 13.09.2018 01:07:55 »
# swapoff -a && swapon -a
Сработало, спасиБо! Хотя, раньше, при свапофф, просто зависало.
Проверять через cron: если SwapCached меньше половины MemFree, то переместить своп в память.
Мал я в Линуксе еще, была бы еще инструкция как то делать)


# swapoff -a && swapon -a


Можете засунуть это в скрипт и сделать на него alias swapfree[/quote]

Оффлайн S3R_sqrT

  • Завсегдатай
  • *
  • Сообщений: 323
Re: Как в Альте правильно создать swap ?
« Ответ #50 : 13.09.2018 03:42:44 »
таки поспешил:
# swapoff -a && swapon -a
swapoff: /swapfile: swapoff failed: Невозможно выделить память

кстати, сама RAM постоянно забита кэшированной памятью, почти вся(( - это нормально?

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #51 : 13.09.2018 08:32:15 »
Проверять через cron: если SwapCached меньше половины MemFree, то переместить своп в память.
Мал я в Линуксе еще, была бы еще инструкция как то делать)

Там cron-скрипт с проверкой надо писать. Таких скриптов в Линукс нет.
Дело не особенно хитрое, но время это займёт. Ну плюс проверка, а быстро это не бывает.

Мал я в Линуксе еще, была бы еще инструкция как то делать)

Да вообще не разработчик, не программист и не тим, - я пользователь ZX Spectrum :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #52 : 13.09.2018 08:53:14 »
таки поспешил:
# swapoff -a && swapon -a
swapoff: /swapfile: swapoff failed: Невозможно выделить память

Конечно. Когда вам говорят, что в выбросе 'free -m' кеш можно не учитывать, это вам лапшу на уши вешают.

Сначала дропаете кеш и освобождаете память
# sync && echo 3 > /proc/sys/vm/drop_caches

затем перемещаете своп в физическую память, - она должна быть свободной и достаточной чтобы туда что-то переместить:
# swapoff -a && swapon -a

Я ведь не зря говорил, что SwapCached должно быть равно не менее половины MemFree (см. /proc/meminfo)

кстати, сама RAM постоянно забита кэшированной памятью, почти вся(( - это нормально?

Для Линукс это нормально. Линукс загаживает кешем всю доступную физическую память.
Но! Линукс не всегда умный:
Если своп у вас забит достаточно, физическая память заполнена программами заметно более чем на 5/6, кеш уперся в физическую память и заметно мал, Линукс не скажет Out of memory, а уйдёт в жесточайший своп. При перегруженной I/O процессор будет спать ожидая команд, а iowait будет жесточайше высоким. И вы увидите в Линукс такие тормоза, которых вы ещё никогда не видели. И тут лучше делать SysRq: вы не можете сказать какая операция выполняется на poweroff в 4 секунды и рискуете повредить систему.

Скажем так:
я бы стал перемещать своп в физическую память, если он 800 мегабайт и меньше:
# grep MemFree /proc/meminfo; free -k
MemFree:         1655952 kB
             total       used       free     shared    buffers     cached
Mem:       2517872     862044    1655828          0       2592     318536
-/+ buffers/cache:     540916    1976956
Swap:            0          0          0
Во-первых вам нужна свободная физическая память для перемещения свопа.
Во-вторых вам нужна свободная физическая память для программ после перемещения свопа, иначе смысл перемещения свопа теряется.
« Последнее редактирование: 13.09.2018 09:22:20 от Speccyfighter »

Оффлайн S3R_sqrT

  • Завсегдатай
  • *
  • Сообщений: 323
Re: Как в Альте правильно создать swap ?
« Ответ #53 : 13.09.2018 11:54:09 »
Цитировать
[root@comp-core-i7-2670qm ~]# grep MemFree /proc/meminfo; free -k
MemFree:         1488812 kB
             total       used       free     shared    buffers     cached
Mem:       8061592    6572948    1488644          0      26464    3710188
-/+ buffers/cache:    2836296    5225296
Swap:      4194300    2295716    1898584
# sync && echo 3 > /proc/sys/vm/drop_caches почти ничего не освобождает, а малость сразу восполняется после освобождения.
Цитировать
И тут лучше делать SysRq:
а если ноут Dell Vostro, там же нет той кнопки...
« Последнее редактирование: 13.09.2018 13:22:07 от S3R_sqrT »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #54 : 13.09.2018 12:48:32 »
[root@comp-core-i7-2670qm-a884f1 ~]# grep MemFree /proc/meminfo; free -k
MemFree:         1488812 kB
             total       used       free     shared    buffers     cached
Mem:       8061592    6572948    1488644          0      26464    3710188
-/+ buffers/cache:    2836296    5225296
Swap:      4194300    2295716    1898584

У вас SwapCached равен 2295716 килобайт, что явно больше чем полтора гига свободной памяти.

Система на Unix System V init:
Свободной памяти приблизительно гиг-двести, в кеше шестьсот метров, в буферах чуть больше сотни:
# grep 'MemFree\|SwapCached' /proc/meminfo
MemFree:         1248480 kB
SwapCached:            0 kB
# free -k
             total       used       free     shared    buffers     cached
Mem:       2517872    1270128    1247744          0     118456     607352
-/+ buffers/cache:     544320    1973552
Swap:            0          0          0

Сбрасываем кеш и буферы
# echo 3 > /proc/sys/vm/drop_caches

Свободной памяти стало уже гиг-шестьсот и уменьшился кеш.
Итого, если своппинг не превышает 800 мегабайт (в данном случае), можем вернуть в память эти 800 мегабайт:
# grep 'MemFree\|Cache' /proc/meminfo
MemFree:         1681644 kB
Cached:           291396 kB
SwapCached:            0 kB

А у вас 3.7 гига в кеше на системе с systemd:
# sync && echo 3 > /proc/sys/vm/drop_caches
почти ничего не освобождает, а малость сразу восполняется после освобождения.

:-) Ну передавайте привет сыстемдецу и Лёньке Поттерингу.
Инит в системах на sysv отвечает только за одно, - запустить демоны. Остальное, это не его проблема.

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

А вы думаете я на init зря сижу? :-)
Мне категорически не нравится когда система становится хитрож0п0й и хитроумной.

« Последнее редактирование: 13.09.2018 12:52:20 от Speccyfighter »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Как в Альте правильно создать swap ?
« Ответ #55 : 13.09.2018 13:36:53 »
ну дак путь бы оно валялось в свопе - кушать не просит...
линукс вумный - быстрее юзера разберется, что тащить в оперативку в этом случае и когда, а так только бесполезный расход ресурсов на таскание туда-сюда...
Дело в том, что если все закрыто и память почти вся свободна, свап можт быть полным

Если у вас при повседневной работе система постоянно ползет в своп, то имеет смысл решить именно эту проблему!

и если память заполнится, в свапе места не будет!

Какая вам разница?

Сценарий 1 (как хотите)
а) со свапа все прочитал в память, в свопе пусто, память занята
б) запустил софт... память заполнилась...
в) из памяти заполняется своп....
г) память полная, своп полный - адские тормоза...

Сценарий 2 (как сейчас)
а) запустил софт... память заполнилась...
б) память полная, своп полный - адские тормоза...

Разница лишь в том что в первом варианте вы еще данные гоняете туда сюда...

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Как в Альте правильно создать swap ?
« Ответ #56 : 13.09.2018 17:01:16 »
кстати, сама RAM постоянно забита кэшированной памятью, почти вся(( - это нормально?
Вы не первый. Наверное, даже не миллионный с таким вопросом. :-)
Люди даже домен зарегистрировали: https://www.linuxatemyram.com/

https://lorwiki.org.ru/wiki/General, ответ 13. Там ещё пара ссылок по делу (хотя одна не очень работчая, но там по смыслу найти можно).

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #57 : 13.09.2018 18:24:23 »
[root@comp-core-i7-2670qm ~]# grep MemFree /proc/meminfo; free -k
MemFree:         1488812 kB
             total       used       free     shared    buffers     cached
Mem:       8061592    6572948    1488644          0      26464    3710188
-/+ buffers/cache:    2836296    5225296
Swap:      4194300    2295716    1898584
# sync && echo 3 > /proc/sys/vm/drop_caches почти ничего не освобождает, а малость сразу восполняется после освобождения.

Вот так это должно и обязано работать:
какая инициализация
# ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 сен 13 17:59 /proc/1/exe -> /sbin/init

сколько открыто X-сессий
# who | grep -E " :[0-9] " | cut -f 1 -d ' ' | wc -l
2

сколько времени
# uptime
 18:08:36 up 8 days,  6:18,  9 users,  load average: 1,88, 1,87, 2,05

текущее состояние памяти
# grep Mem /proc/meminfo
MemTotal:        8233208 kB
MemFree:         3308448 kB
MemAvailable:    6146700 kB
# free -k
             total       used       free     shared    buffers     cached
Mem:       8233208    4925248    3307960          0     118324    2724944
-/+ buffers/cache:    2081980    6151228
Swap:     20972852          0   20972852
(MemAvailable: это не Mem:/free, это buffers/cache/free и это не MemFree: !
С точки зрения ядра, доступная, это не свободная память: available != free
)

сброс буферов и кеша
# sync && echo 3 > /proc/sys/vm/drop_caches

состояние памяти после сброса
# grep Mem /proc/meminfo
MemTotal:        8233208 kB
MemFree:         6010420 kB
MemAvailable:    6147676 kB
# free -k
             total       used       free     shared    buffers     cached
Mem:       8233208    2225668    6007540          0       7804     161848
-/+ buffers/cache:    2056016    6177192
Swap:     20972852          0   20972852
В память можно вернуть своппинг в 3 гигабайта.

Система должна беспрекословно подчиняться.
« Последнее редактирование: 14.09.2018 09:29:42 от Speccyfighter »

Оффлайн S3R_sqrT

  • Завсегдатай
  • *
  • Сообщений: 323
Re: Как в Альте правильно создать swap ?
« Ответ #58 : 17.09.2018 15:18:52 »
# grep MemFree /proc/meminfo; free -k
MemFree:         2158528 kB
             total       used       free     shared    buffers     cached
Mem:       8061592    5903336    2158256          0       3820    3204440
-/+ buffers/cache:    2695076    5366516
Swap:      4194300    3293864     900436
Значит, память занята ВСЯ кэшем. Свап заполнен хламом. Реально почти ничего не открыто, почти все закрыл.
Кэш если каплю сбрасывает по команде, тут же заполняет обратно. Свап-он/оф невозможно осуществить - нет доступной памяти.
Параметр свпинес также по сути ничего не меняет в данной ситуации, а жрать память кэшем, как понимаю, запретить не могу.
Как быть!? Какой мой алгоритм действий?

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Как в Альте правильно создать swap ?
« Ответ #59 : 17.09.2018 15:57:34 »
> Какой мой алгоритм действий?

попробовать xfce