Существует ли способ действительно расположить по приоритетам процессы или заставить Linux уважать их приоритеты?

@warl0ck имеет его правильный; требуемый, чтобы добавить, что эта информация документируется вполне хорошо в Новомодной документации: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

Конкретно:

С Выскочкой 1.3, можно использовать файлы переопределения и ручную строку файла конфигурации для достижения того же результата более простым способом [27]:

# echo "manual" >> /etc/init/myjob.override

Обратите внимание, что Вы могли достигнуть того же эффекта путем выполнения этого:

# echo "manual" >> /etc/init/myjob.conf

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

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

5
14.10.2013, 02:07
3 ответа

Приоритет процесса не является единственной вещью, которая играет роль, когда Вы пытаетесь настроить пользовательский опыт. Компиляция ядра скорее вещь I/O-heavy - большое чтение/запись из маленьких файлов, которые могут расширить файловую систему вполне немного (существует причина, почему это иногда используется в качестве сравнительного теста самостоятельно), особенно на многопроцессорной машине. Если у Вас есть достаточно RAM, я предлагаю, чтобы Вы попытались скомпилировать ядро в tmpfs - по крайней мере частично: любое помещенное исходное дерево там (который будет эффективно действовать как упреждающая выборка его в кэш) или отправляет вывод туда при помощи

make O=/dev/shm ...

или везде, где Вы решаете смонтировать Ваш tmpfs экземпляр, достаточно большой для содержания файлов объекта ядра - который может легко быть в диапазоне гигабайта).

Кроме этого можно также проверить, имеет ли VLC возможность кэширования (мое предположение - он, имеет, например, для MPlayer имеет -cache опция), с которым можно запросить кэширование данных внутренне. Затем это не должно получать данные, поскольку этому нужны они, но когда они становятся доступными.

Другая вещь состоит в том, что отображение сделано через X-сервер - его приоритет должен был бы быть повышен также (см. комментарий Wumpus Q. Wumbley под вопросом).

Еще две опции используют cgroups, и/или планировщик RT (для первого на видят, например, приоритет управления приложений с помощью cgroups, поскольку последние видят, например, хинду инструкции).

Последняя вещь, который Вы могли бы хотеть оптимизировать свою систему немного путем превращения ненужных сервисов. Лично я полагал бы, что PulseAudio, являющийся тем, запускается с.

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

1
27.01.2020, 20:36
  • 1
    Спасибо за Ваш ответ и рекомендации, хотя сценарий я дал, был просто пример. Я больше интересуюсь тем, почему Linux не уважал экстремальный приоритет в пользу других и если существует какой-либо путь к нему для поведения по-другому. Компиляция ядра уже выполнялась в/tmp (tmpfs, таким образом, это уже находится в RAM), я не повторно подставляю доступа к диску, был необходим для него. Я исправлю вопрос так или иначе. –  Kao Dome 14.10.2013, 01:06
  • 2
    , Является Вами уверенный, что Ваш tmpfs не был выгружен во время сборки? Это объяснило бы тяжелый ввод-вывод и также почему изменение приоритета не имело ожидаемого эффекта (подкачивающий, обычно получает приоритетный вид повышения). –  peterph 14.10.2013, 10:18

renice действительно влияет на приоритет процесса. Но поскольку Вы испытали, просто потому что процесс имеет более высокий приоритет, не подразумевает, что он будет иметь все ресурсы, в которых требуется. Более высокий приоритет просто дает процессу больший шанс захватить ресурсы.

renice только процессорное время влияния. Таким образом, это только имеет эффект, если два или больше процесса конкурируют в течение процессорного времени. Если ограничивающим фактором не является процессорное время, но пропускная способность средств ввода-вывода, хорошее значение не оказывает влияния. Возможно, в Вашем случае компиляция использует много дисковой пропускной способности, и vlc не может считать данные достаточно быстро с диска. Попробовать ionice вместо этого или в дополнение к nice.

Если Вы будете часто делать это, то Вы получите лучшие результаты, если видео и компиляция будут на отдельных дисках. Кроме того, можно получить лучшие результаты, если Вы предварительно загружаете видео в дисковый кэш (cat /path/to/video.file >/dev/null, или tail -c +456m | head -c 123m /path/to/video.file >/dev/null для чтения 123 МБ, запускающихся при смещении 456 МБ) — но если у Вас нет большого количества RAM, компиляция, вероятно, будет требовать возвратить пространство кэша. Если Вы хотите убедиться иметь видео в памяти, сделайте электронный диск и скопируйте видео в него.

6
27.01.2020, 20:36
  • 1
    Привет, спасибо за ответ и рекомендации, я буду смотреть в ionice хотя я подозреваю, что это не будет иметь большую часть значения, так как компиляция ядра уже выполнялась в RAM (источники, и все были в /tmp который я имею как tmpfs). Я исправлю вопрос относительно этого. –  Kao Dome 14.10.2013, 01:08

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

Вы всегда можете использовать CHRT -I 0 , чтобы дать компиляцию истинного приоритета простоя. http://linux.die.net/man/1/chrt

или дроссель компиляции с помощью cgroups. http://kennystechtalk.blogspot.co.uk/2015/04/throottling-cpu-Usage-with-linux-cgroups.html

или бросить все на него:

EATMYDATA CGEEXEC -G CPU: CHRT CHRT -I 0 IONICE -C3 NICE -N19 / PATH / COMPILE-SCRIPT> / DEV / NULL

Примечание: Nice -N19 Не должен иметь никакого значения, если CHRT - I 0 используется, но это также ничего не повредит.

Мой древний P4 может сделать то же самое без VLC расстраивается.

1
27.01.2020, 20:36

Теги

Похожие вопросы