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

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Как в Альте правильно создать swap ?
« Ответ #75 : 25.10.2018 00:52:42 »
2188MB  plasmashell

XFCE или LXDE спасет отца русской демократии

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #76 : 25.10.2018 03:30:26 »
я всеже не могу понять:
1. почему, когда вся RAM свободна (80%), со свапа ничего туда, никогда не перемещается.
2. почему, когда ВСЕ программы закрыты, в свап всегда и все так и остается, то есть он просто захламляется до его предела.
3. если сделать swapon/swapoff, тогда данные, перешедшие в RAM там так и лежат мертвой, всем забытой кучей (когда все, что создало их закрыто и данные должны были быть удалены со свапа или пмяти).

:-) Потому что сам Линукс этого не делает. В Линукс это солнце нужно закатить вручную. Это во-первых.
Во-вторых:
По-умолчанию swappiness равно 60, а кеш и буферы ядро считает занятой памятью. Число отображает минимальный процент свободной памяти при которой данные ещё не будут сбрасываться в своп. Уменьшите swappiness до 40-ка или 30-ти (см. sysctl -a | grep swappiness).
В третьих:
Сделайте этот закат солнца скриптом через cron (см. в /proc/meminfo первые шесть строк).
Алгоритм такой:
Проверять каждые 5-30-60 минут,
- если SwapCached равно нулю, то exit 0.
- иначе, если SwapCached меньше чем половина (или треть) MemFree, то выполнить 'sync && swapoff -a && swapon -a'
« Последнее редактирование: 25.10.2018 12:46:41 от Speccyfighter »

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Как в Альте правильно создать swap ?
« Ответ #77 : 25.10.2018 18:21:23 »
:-) Потому что сам Линукс этого не делает.

ИМХО, правильно и делает :)
У  S3R_sqrT при 8 гигах оперативы более 3 гигов свопа
Тут как не извращайся - никуда не деться...
Оперативки просто МАЛО
Или 16 Гб ОЗУ или убрать кеды, которые более 2,5 гигов у S3R_sqrT отжирают...

Оффлайн S3R_sqrT

  • Завсегдатай
  • *
  • Сообщений: 323
Re: Как в Альте правильно создать swap ?
« Ответ #78 : 26.10.2018 00:24:32 »
ИМХО, правильно и делает :)
У  S3R_sqrT при 8 гигах оперативы более 3 гигов свопа
Тут как не извращайся - никуда не деться...
Оперативки просто МАЛО
Только вот для моему Виндовс8 8гиг более чем хватает и таких проблем и близко нет, работает с памятью лучше.

Оффлайн S3R_sqrT

  • Завсегдатай
  • *
  • Сообщений: 323
Re: Как в Альте правильно создать swap ?
« Ответ #79 : 26.10.2018 00:28:04 »
Алгоритм такой:
Проверять каждые 5-30-60 минут,
- если SwapCached равно нулю, то exit 0.
- иначе, если SwapCached меньше чем половина (или треть) MemFree, то выполнить 'sync && swapoff -a && swapon -a'

Ну, с Java, Js, C++ и т.п. я знаком. А как, где, на чем это писать и куда размещать потом?
Да и полный swapoff -a && swapon -a делать как-то систему приглушит в ненужный момент... оно должно со свапа нужные данные в память брать, либо часть, эту же часть стирать со свапа, а не все.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #80 : 26.10.2018 00:30:12 »
:-) Потому что сам Линукс этого не делает.

ИМХО, правильно и делает :)
У  S3R_sqrT при 8 гигах оперативы более 3 гигов свопа
Тут как не извращайся - никуда не деться...
Оперативки просто МАЛО
Или 16 Гб ОЗУ или убрать кеды, которые более 2,5 гигов у S3R_sqrT отжирают...

S3R_sqrT не про сожранную память. Хотя сожрать без копеек 3 гига под голую операционку, это клиника.
Он про то что данные не переносятся из дисковой памяти в оперативную, как самую быструю память, когда оперативная память свободна:
$ free -m
             total       used       free     shared    buffers     cached
Mem:          2464       2277        187          0         45        772
-/+ buffers/cache:       1458       1005
Swap:        10607         18      10588
$ free -m
             total       used       free     shared    buffers     cached
Mem:          2464       2290        174          0          7        234
-/+ buffers/cache:       2047        416
Swap:        10607        969       9638
$ kill -3 2841 16022
$ free -m
             total       used       free     shared    buffers     cached
Mem:          2464        294       2169          0          8        178
-/+ buffers/cache:        108       2356
Swap:        10607        102      10505

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #81 : 26.10.2018 01:07:52 »
А как, где, на чем это писать и куда размещать потом?

1. На bash. Файл исполняемый. Файл начинается с шебанг.
2. Ежечасно:
/etc/cron.hourly/

Да и полный swapoff -a && swapon -a делать как-то систему приглушит

* ibm.com Изучаем Linux, 101: Приоритеты исполнения процесса
* habr.com: Команда nice, или вежливые процессы
* В.А.Костромин. Самоучитель "Linux для пользователя". 8.4. Управление процессами

man nice
info nice

См. также:
man 1 crontab
man 5 crontab
« Последнее редактирование: 26.10.2018 01:24:49 от Speccyfighter »

Оффлайн klark973

  • Завсегдатай
  • *
  • Сообщений: 662
  • Неспящий саппорт
Re: Как в Альте правильно создать swap ?
« Ответ #82 : 26.10.2018 02:51:02 »
1. почему, когда вся RAM свободна (80%), со свапа ничего туда, никогда не перемещается.
Страницы выгружаются в своп только тогда, когда физической памяти уже не хватает. Обратно они будут загружены в память сразу, как только реально потребуются для работы. Зачем же лишний раз раскручивать шпиндель?

2. почему, когда ВСЕ программы закрыты, в свап всегда и все так и остается, то есть он просто захламляется до его предела.
Прям все-все, включая init? Вы случайно zfs с дедубликацией не используете?

3. если сделать swapon/swapoff, тогда данные, перешедшие в RAM там так и лежат мертвой, всем забытой кучей (когда все, что создало их закрыто и данные должны были быть удалены со свапа или пмяти).
То есть, данные переносятся из свопа в память и эта память числится распределённой? Ну, так выше есть команда, чтобы увидеть, чего там за хлам остался. Бывает, крестик нажал, а процесс висит.
To moan or to solve -- that is the question!

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 972
Re: Как в Альте правильно создать swap ?
« Ответ #83 : 26.10.2018 08:37:04 »
Он про то что данные не переносятся из дисковой памяти в оперативную, как самую быструю память, когда оперативная память свободна:

 - Ну и ладно... Может эти данные вообще пользователю не нужны... пущай в свопе и валяются... зачем их тащить в оперативку?  мне лениво :)))

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #84 : 26.10.2018 18:19:40 »
ps axo rss,comm,pid | awk '{ proc_list[$2] += $1; } END \
> { for (proc in proc_list) { printf("%d\t%s\n", proc_list[proc],proc); }}' |
> sort -n | tail -n 10 | sort -rn | awk '{$1/=1024;printf "%.0fMB\t",$1}{print $2}'
2188MB  plasmashell
2093MB  yandex_browser
963MB   vivaldi-bin
564MB   Web
415MB   krb5-ticket-wat
301MB   firefox-bin
294MB   kwin_x11
224MB   soffice.bin
173MB   dolphin
126MB   X

Слезайте с KDE5, он у вас сожрал чудовищно много, 3070MB.
Это без учёта запущенных X, yandex_browser, vivaldi-bin, firefox-bin с Web, soffice.bin.
Thunar например, памяти пожирает, более чем в 10 раз меньше чем dolphin
.

Оффлайн ∞lan∞

  • Завсегдатай
  • *
  • Сообщений: 328
Re: Как в Альте правильно создать swap ?
« Ответ #85 : 26.10.2018 19:47:43 »
831MB clamd
181MB midori
137MB X
116MB pcmanfm
60MB deadbeef-gtkui
47MB nm-applet
36MB lxpanel
36MB notify-osd
35MB goa-daemon
24MB systemd-journal

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #86 : 26.10.2018 23:52:20 »
sysv-xfce:
$ ps axo rss,comm,pid | awk '{ proc_list[$2] += $1; } END \
> { for (proc in proc_list) { printf("%d\t%s\n", proc_list[proc],proc); }}' |\
> sort -n | tail -n 10 | sort -rn | awk '{$1/=1024;printf "%.0fMB\t",$1}{print $2}'
566MB palemoon-bin
55MB X
51MB plugin-containe
39MB nm-applet
27MB xfdesktop
25MB Thunar
25MB xfce4-panel
24MB goa-daemon
23MB mousepad
22MB xfce4-terminal
$ cat mem-percent.sh
TEN=`ps axo rss,comm,pid | grep -v "moon\|plugin-contain" | awk '{ proc_list[$2] += $1; } END \
{ for (proc in proc_list) { printf("%d\t%s\n", proc_list[proc],proc); }}' | \
sort -n  | tail -n 10 | sort -rn | \
awk '{printf "%.0f\t",$1}{print $2}' | awk '{sum += $1} END {print sum}'`;\
MT=`grep MemTotal /proc/meminfo | awk '{print $2}'`;\
PERCENT=$(($(($TEN*100))/$MT)); \
MTL=`grep MemTotal /proc/meminfo | awk '{print $2 $3}'`;
echo -e " Общий объём памяти: \n" "$MTL\n" "Процент использования памяти десятью самыми тяжёлыми задачами кроме браузера newmoon: \n" "$PERCENT"%
$ ./mem-percent.sh
 Общий объём памяти:
 8209904kB
 Процент использования памяти десятью самыми тяжёлыми задачами кроме браузера newmoon:
 3%
$ MF=`grep MemFree /proc/meminfo | awk '{printf $2}'`; let MEMFREE="$(($MF*1000/1024/1024))"; echo -e "\nMemFree:" "$MEMFREE" "MiB\n"

MemFree: 6305 MiB

$ ps axo rss,comm,pid | awk '{ proc_list[$2] += $1; } END \{ for (proc in proc_list) { printf("%d\t%s\n", proc_list[proc],proc); }}' | sort -n | sort -rn | awk '{$1/=1024;printf "%.0fMB\t",$1}{print $2}' | grep -v ^0MB
625MB palemoon-bin
55MB X
50MB plugin-containe
39MB nm-applet
27MB xfdesktop
25MB Thunar
25MB xfce4-panel
24MB goa-daemon
23MB mousepad
22MB xfce4-terminal
20MB xarchiver
20MB xfce4-xkb-plugi
19MB panel-17-xfce4-
19MB xfwm4
17MB pnmixer
16MB panel-16-power-
16MB panel-2-actions
16MB bash
14MB xfce4-session
14MB xfsettingsd
14MB panel-6-systray
14MB xfce4-power-man
12MB NetworkManager
12MB polkitd
11MB dbus-daemon
8MB gvfs-udisks2-vo
8MB ModemManager
8MB udisksd
7MB upowerd
7MB xfconfd
7MB wpa_supplicant
7MB gvfs-afc-volume
6MB alteratord
6MB gvfsd-trash
6MB gvfsd
6MB at-spi2-registr
5MB at-spi-bus-laun
5MB gvfsd-metadata
5MB goa-identity-se
4MB gconfd-2
4MB dconf-service
4MB gvfs-gphoto2-vo
4MB systemd-udevd
4MB gvfs-goa-volume
4MB gvfs-mtp-volume
3MB mount.ntfs-3g
3MB lxdm-session
3MB lxdm-binary
2MB dbus-launch
2MB sh
2MB crond
2MB mingetty
1MB klogd
1MB init
1MB syslogd
1MB awk
1MB gnome-pty-helpe
1MB sort
$ free -m
             total       used       free     shared    buffers     cached
Mem:          8017       1565       6451          0        123        732
-/+ buffers/cache:        709       7308
Swap:        10607          0      10607
« Последнее редактирование: 27.10.2018 00:32:17 от Speccyfighter »

Оффлайн ∞lan∞

  • Завсегдатай
  • *
  • Сообщений: 328
Re: Как в Альте правильно создать swap ?
« Ответ #87 : 27.10.2018 12:11:57 »
Придётся мне перейти на xfce-SysV i586

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Как в Альте правильно создать swap ?
« Ответ #88 : 27.10.2018 16:58:06 »
Придётся мне перейти на xfce-SysV i586

Я конечно сторонник простоты и надёжности классических init, но должен предупредить: альты усиленно ломают sysv и его существование в p9/branch под тремя большими вопросами.
При этом альты бегут впереди паровоза вслед за поттеринго-федорой, полностью игнорируя стандарты.
В чём тут юмор?
Юмор в том, что альты в сизифе линкуют не только /var/run, но и /var/lock:
https://bugzilla.altlinux.org/show_bug.cgi?id=32358#c5
https://git.kernel.org/pub/scm/boot/dracut/dracut.git/tree/modules.d/30convertfs/convertfs.sh#n22
А также в том, что спецификация FHS последней 3-ей версии, которая на линуксфаундэйшн, упоминает линковку /var/run, но ничего не говорит о линковке /var/lock.
При этом с большой долей вероятности будет сломан и аварийный rescue который входит в состав инсталляционного sysv-xfce:
https://bugzilla.altlinux.org/show_bug.cgi?id=35350#c15

Если всё же надумаете использовать sysv-xfce, его  можно смело использовать из p8, но будьте предельно внимательны и предельно недоверчивы к альтам на p9/сизифе, все sysv могут оказаться сломаными альтами.
В связи со всем этим происходящим с sysv в сизифе, разработка polkit-sysvinit приостановлена. И пока ситуация с sysv не стабилизируется в сизифе, я не вижу перспектив в его дальнейшей разработке.

И в довесок:
Помните, что hibernate в std-pae-4.4.x у альтов сломан.
И единственное где он работает, это std-pae-4.1.21, но не в std-pae-4.4.x.
Ядро std-pae-4.1.21 можно найти тут:
http://download.basealt.ru/pub/distributions/archive/p8/date/2016/04/14/i586/
В архивах на ftp.altlinux.org его нет.
« Последнее редактирование: 27.10.2018 17:12:41 от Speccyfighter »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Как в Альте правильно создать swap ?
« Ответ #89 : 28.10.2018 09:54:29 »
Юмор в том, что альты в сизифе линкуют не только /var/run, но и /var/lock:
https://bugzilla.altlinux.org/show_bug.cgi?id=32358#c5
А что плохого в /var/lock на tmpfs?