Intereting Posts
Молчаливые ошибки диска и надежность обмена Linux Когда вы должны использовать подоболочки vs `xargs`? Есть ли способ получить доступ к имени хоста, содержащему знак подчеркивания? Могу ли я маскировать ядро ​​uevent? Как захватить трафик на виртуальных интерфейсах? Fedora в Oracle VM VirtualBox: установка гостевых дополнений Как отключить или исправить показатели прокрутки GTK? Отсутствие номеров разделов на замененном диске маршрутизация через сеть GVPE Есть ли GUI для Linux, который не использует X11? Клиенты Openvpn не могут получить доступ к локальной сети Установка программного обеспечения в качестве пользователя Как заставить spamassassin не проверять, находится ли аутентифицированный пользователь в черном списке? Как заставить клиента Torrent хранить одни и те же данные торрента для нескольких пользователей? rsync хочет повторно отправить файлы после недавнего запуска

Каковы последствия, если таковые имеются, приоритетов планировщика и политик для потоков в неподготовленном cpuset?

У меня есть система Linux, в которой мы использовали cgroups для создания двух cpu_exclusive cpusets, A и B, и где мы перенесли все потоки пользователей и все несвязанные потоки ядра в группу, прикрепленную к cpuset A. Вещи, выполняемые в cpuset A, имеют разные политики планировщика и различные приоритеты, и в cpuset A есть еще много потоков, чем в cpuset A.

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

В такой настройке, имеет ли политика планирования / приоритет пользовательских потоков, запущенных в cpuset B, какой-либо наблюдаемый эффект? Иными словами: изменит ли политика планирования потоков B cpuset от SCHED_OTHER по умолчанию SCHED_FIFO или SCHED_RR какие-либо последствия, хорошие или плохие?

Кажется, что ответ должен быть «нет», поскольку планировщик должен иметь возможность назначать каждому потоку, выполняющемуся в cpuset B, свое собственное выделенное ядро, поэтому не было бы ничего приоритетного или планируемого, и поэтому политика и относительный приоритет B потоки cpuset не имеют значения. С другой стороны, есть связанные потоки ядра и аспекты «области планировщика», о которых нужно беспокоиться, и, возможно, другие вещи, которые я не рассматривал.

Имеют ли политики планирования и приоритеты потоки, выполняемые в избыточном избыточном пакете, в любом практическом смысле?

Используемый временной срез будет иметь значение для нагрузок с интенсивным процессором, для которых требуется постоянство кеша, если вы не заблокируете конкретное ядро ​​для каждого PID. Вы можете увеличить временной срез с графической политикой SCHED_BATCH и повысить производительность до 300% в некоторых случаях, одновременно уменьшая интерактивность. Противоположный эффект меньших срезов времени происходит с SCHED_RR (что уменьшит пропускную способность, но увеличит скорость реагирования в реальном времени).

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

Если каждый процесс имеет свое собственное ядро, то ограничений приоритета нет.

Однако, если вы планируете процесс, который занимает 30 минут для запуска каждые 15 минут, у вас начнет возникать необходимость приоритизации процесса, когда процесс начнет перекрываться.

Однако нет «лучшей» политики планирования.

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