LINUX.ORG.RU

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

После выполнения любой команды она закрывается. Автоматически.
Но даже если удастся заставить её не закрываться, то зачем она мне постоянно посредине экрана?
Как бы её в фоне удерживать?

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

Тогда посмотри как сделано во всяких preload. Наверное что-то вроде mmap() + mlock().

anonymous
()

Actually the sticky-bit could previously be applied to executables, which caused these to remain in swap after they first were loaded. This could save lots of unnecessary disk/network (NFS) and CPU usage for programs that were much used. However, neither Linux nor most (all?) Unix systems support this any longer (it was removed from the kernel).

INFOMAN ★★★★★
()

Дикий костыль: напишите скрипт, который во время загрузки скопирует всё нужное для запуска $PROGRAMMNAME в какую нибудь папочку, висящую в tmpfs (в опере короче) и заскриптуйте запуск оттуда. Запускаться оттуда она будет мгновенно с большой вероятностью, если данные не вытеснятся в своп.

kirill_rrr ★★★★★
()

memory.swap.max=0 в настройках сигруппы. Можно через systemd-run провернуть. Больше инфы дам по запросу.

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

Самому не удалось нарыть, буду благодарен за разъяснение.
Хотябы ссылки где можно почитать о том, что такое «сигруппы», что делает параметр «memory.swap.max».
Про вариант с системД тоже было бы интересно.

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

Ближе к делу суть такова:

Вот это добавляешь в boot cmdline:

systemd.unified_cgroup_hierarchy=1 swapaccount=1

- первая опция включает сигруп2 и оставляет сигруп2 в качестве единственной сигруп иерархии (см https://www.freedesktop.org/software/systemd/man/systemd.html#systemd.unified...).

- вторая включает возможность использовать тот самый memory.swap.max=0.

https://www.kernel.org/doc/Documentation/cgroup-v2.txt док по сигруп2

Опция в системд юнитах:

MemorySwapMax=bytes

Specify the absolute limit on swap usage of the executed processes in this unit.

Takes a swap size in bytes. If the value is suffixed with K, M, G or T, the specified swap size is parsed as Kilobytes, Megabytes, Gigabytes, or Terabytes (with the base 1024), respectively. If assigned the special value «infinity», no swap limit is applied. This controls the «memory.swap.max» control group attribute. For details about this control group attribute, see cgroup-v2.txt.

This setting is supported only if the unified control group hierarchy is used and disables MemoryLimit=.

- https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html

Запуск проги с десктопа черрез systemd-run с запретом своппинга:

systemd-run --uid=1000 --gid=1000 --no-block -p MemorySwapMax=0 /your/app

Обсуждение системд-ран в соседней ветке Ограничение по-умолчанию потребления ОЗУ браузером (аналог systemd-run -p MemoryHigh=bytes -p MemoryMax=bytes)

Пробуй еще спрашивать, вижу у вас еще вопросы остались.

И да, для всех юнитов включен memory accounting (DefaultMemoryAccounting=true в /etc/systemd/system.conf).

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