The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Раздел полезных советов: Запуск процесса с совсем-совсем IDLE приоритетом в Linux"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от auto_tips (?), 21-Июн-21, 08:32 
Скрипт для запуска процесса в Linux с минимальным влиянием на работу других процессов:

   #!/bin/sh
   # куда бы еще /usr/bin/nice впихнуть?
   /usr/bin/chrt --idle 0 /usr/bin/ionice -c 3 $* &
   XPID=$!
   /usr/bin/cpulimit -l 1 -c 1 -b -p $XPID
   wait $XPID

В chrt "--idle 0" выставляет режим планировщика SCHED_IDLE с минимальным приоритетом.

В ionice  "-c 3" активирует 3 класс (idle) планирования ввода/вывода.

В cpulimit опцией "-l" задаётся допустимый процент использования CPU (в диапазоне от 0 до 100 * на число процессорных ядер), - "-c" ограничивает число ядер CPU, "-b" - запускает процесс cpulimit в фоне, "-p" применяет ограничение для PID уже запущенного процесса. При помощи опции "-i" можно распространить ограничение и на все дочерние процессы.


URL:
Обсуждается: https://www.opennet.ru/tips/info/3187.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от s (?), 21-Июн-21, 08:32 
> # куда бы еще /usr/bin/nice впихнуть?

Дык man renice же!

Ответить | Правка | Наверх | Cообщить модератору

3. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от СеменСеменыч777 (?), 21-Июн-21, 14:20 
поспешишь - людей насмешишь. вот что стоило мне подождать пару дней.
сейчас у меня есть 1строчник:

/usr/bin/cpulimit -l 1 -c 1 -f -q -- /usr/bin/nice -19 /usr/bin/chrt --idle 0 /usr/bin/ionice -c 3 $*

Ответить | Правка | Наверх | Cообщить модератору

4. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +2 +/
Сообщение от Аноним (4), 21-Июн-21, 19:01 
Не $*, а "$@". Иначе проблемы с аргументами, содержащими пробелы.
Ответить | Правка | Наверх | Cообщить модератору

5. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от йо ж (?), 24-Июн-21, 21:04 
> совсем-совсем

"и таки запомните, дети, шо этот русский язык имеет трёх степеней сравнения: близко, ближе, и уот-уот-уот". (ц)

Ответить | Правка | Наверх | Cообщить модератору

6. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от Аноним (6), 25-Июн-21, 17:21 
Самое интересное, что это не поможет. Если IO выставить в SCHED_BATCH, будет разве что быстрее отрабатывать без нагрузки и чуть меньше мешать с ней (лагать всё-равно будет). Всё хочу попробовать ограничить ресурсы через cgroups, но ядро даёт мне отлуп и не хочет без systemd работать, я не знаю что дальше с ним делать. Реалтайм процессы ещё и фризов завозят (всем), к одному ядру прибывать есть смысл только однопоточное приложение с вычислениями на всё это ядро (или с повышенными требованиями к стабильности задержек (т.н. реалтайм)). Реалтайм и нагруженная система понятия несовместимые.
Ответить | Правка | Наверх | Cообщить модератору

8. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от СеменСеменыч777 (?), 28-Июн-21, 21:45 
> попробовать ограничить ресурсы через cgroups

наверняка кто-то это уже делал. осталось найти и адаптировать.

> но ядро даёт мне отлуп и не хочет без systemd работать,

???

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

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

ps: "реалтайм" не интересует.

Ответить | Правка | Наверх | Cообщить модератору

15. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от Алеша (?), 22-Июл-21, 02:29 
> Всё хочу попробовать ограничить ресурсы через cgroups, но ядро даёт мне отлуп

ну так и используй cpulimit - он сделает ровно все то же самое, что ты хочешь попробовать руками через cgroups сделать.
про отлупы и тем более systemd не понятно. в ядре есдть документация и там совершенно ясные примеры, по которым никто никаких отлупов не дает, если конечно все делать (и понимать) правильно...

Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

16. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от Аноним (6), 22-Июл-21, 09:05 
Прав нет (мне не интересно запускать от рута), адекватной документации нет (не говоря про версии, с актуальностью проблемы), при чём тут процессор (ни при чём)?
Ответить | Правка | Наверх | Cообщить модератору

7. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от Oe (?), 28-Июн-21, 13:17 
cpulimit такая же бесполезная утилита, как и BES на винде - просто ставит на паузу приложение на сотни миллисекунд, вместо эмуляции пропуска тактов процессора, как это должно быть реализовано по нормальному. Еще не ясно, синхронизированы ли периоды пауз, т.е. размазываются ли приложения по времени, или одновременно все ставятся на паузу, и одновременно возобновляются - если нет то это катастрофа для системы, когда вся система замирает каждые пол секунды, я уж не говорю про стабильность работы приложений, особенно tcp сессий.
Ответить | Правка | Наверх | Cообщить модератору

9. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от СеменСеменыч777 (?), 28-Июн-21, 21:54 
> BES на винде

я не знаю что это. на винде есть "start /low", на FreeBSD есть idprio и опять же nice.

> Еще не ясно,
> синхронизированы ли периоды пауз, т.е. размазываются ли приложения по времени, или
> одновременно все ставятся на паузу,

man cpulimit
мониторится конкретный PID (где "P" - это не "приложение", а кое-что другое).

Ответить | Правка | Наверх | Cообщить модератору

10. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от Stax (ok), 29-Июн-21, 16:04 
Ну да, использовать ionice в 2021 году, когда у всех deadline/mq-deadline/none шедулеры, которым на него глубоко до лампочки, ага.

Он работал только с cfq, который актуален только для вращающихся HDD на серверах. Потому что на SSD всегда лучше передавать ему запросы сразу, чем морозить их в очередях, а на десктопе cfq с его стремлением повысить IOPS в ущерб задержкам ощущается не очень комфортно.

Ответить | Правка | Наверх | Cообщить модератору

11. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от СеменСеменыч777 (?), 29-Июн-21, 18:07 
окей, ionice вычеркиваем.
Ответить | Правка | Наверх | Cообщить модератору

13. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от проходил (?), 10-Июл-21, 22:12 
можно ещё вычеркнуть nice, он работает только с SCHED_OTHER. В SCHED_BATCH и SCHED_IDLE приоритет всегда 0.
Ответить | Правка | Наверх | Cообщить модератору

17. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от Stax (ok), 27-Июл-21, 15:00 
Тоже правда.
В общем, добавили всякой мути побольше для устрашения, про кторую сам автор не понимает, что она делает, типа скомбинировано из каких-то древних howto'шек без осознания, как оно сочетается :) И выдается за истину. Мда....
Ответить | Правка | Наверх | Cообщить модератору

21. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +1 +/
Сообщение от XXX (??), 03-Авг-21, 00:04 
Ну дык, поделитесь и вам спасибо скажут
Ответить | Правка | Наверх | Cообщить модератору

23. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +1 +/
Сообщение от pavlinux (ok), 07-Сен-21, 14:10 
1. SCHED_IDLE врубает класс IOPRIO_CLASS_IDLE, которые юзают и BFQ и MQ,
   эта отлично работает на ext4 и btrfs.
   Если не указано IDLE, то используется best-effort i/o scheduling.

2. Не нулевой "приоритет" бывает только у SCHED_FIFO и SCHED_RR

3. Это не системный приоритет, а среди равных шыдулеров!
   SCHED_RR = 99 полюбасу ниже, чем SCHED_FIFO = 1

4. В среднем SCHED_OTHER, SCHED_BATCH и SCHED_IDLE работают так как описано.
   Автор не слушай этих чайников.


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

А по-дефолту везде CFQ/ext4

Ответить | Правка | К родителю #13 | Наверх | Cообщить модератору

12. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +1 +/
Сообщение от Аноним (12), 30-Июн-21, 23:14 
> cpulimit -l 1 -c 1 -b -p

После этого всё лишнее.

Ответить | Правка | Наверх | Cообщить модератору

14. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от СеменСеменыч777 (?), 11-Июл-21, 10:48 
>> cpulimit -l 1 -c 1 -b -p
> После этого всё лишнее.

за время этого 1% злой процесс сможет конкретно нагрузить I/O. или наплодить форков.
так что пусть будет.

Ответить | Правка | Наверх | Cообщить модератору

20. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +1 +/
Сообщение от pashev.me (?), 02-Авг-21, 12:15 
Не запускать совсем-совсем?
Ответить | Правка | Наверх | Cообщить модератору

22. "Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +1 +/
Сообщение от Sylvia (ok), 12-Авг-21, 22:41 
schedtool -D -n+20 -e XXX

Ответить | Правка | Наверх | Cообщить модератору

24. "Раздел полезных советов: Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от pavlinux (ok), 07-Сен-21, 14:40 
> Скрипт для запуска процесса в Linux с минимальным влиянием на работу других процессов:


while true
   do
      sleep 31415;
      exec myprogramma;
      sleep 1;
      killall -9 `pidof myprogramma`;
done

    

Ответить | Правка | Наверх | Cообщить модератору

25. "Раздел полезных советов: Запуск процесса с совсем-совсем IDLE приоритетом в Linux"  +/
Сообщение от Michael Shigorinemail (ok), 08-Окт-21, 21:19 
> Скрипт для запуска процесса в Linux с минимальным влиянием на работу других
> процессов:

Вспомнилось: http://packages.altlinux.org/idlewrap

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру