Как сделать процесс в реальном времени мягким в условиях интенсивной перегрузки интенсивной фоновой нагрузки IO?

458
Vi.
schedtool: PID 32301: PRIO 4, POLICY R: SCHED_RR, NICE -20, AFFINITY 0xf ionice: realtime: prio 4 

Но музыка все равно спотыкается.

Фоновая загрузка является низкой (SCHED_IDLEPRIO, idle), но использует много памяти (больше, чем физически доступно) и выполняет много операций ввода-вывода и вычислений.

Latencytop показывает около 1500 мс для:

Following symlink Writing buffer to disk (sync)  Page fault Writing a page to disk 

как для нагрузки bg, так и для несвязанных процессов. Средняя нагрузка составляет 10 и считается.

Почему он не может выделить, например, 200 МГц одного из ядер и 32 МБ памяти и не менее одного раза в секунду возможность ввода-вывода для mplayer, чтобы сделать его счастливым, продолжая вычисления в фоновом режиме?

Или: почему он не может оставить фоновые задачи и поменяться местами, любя друг друга, но оставляя остальную часть системы, как если бы не было фоновой нагрузки?

Как иметь процессы RT и тяжелую загрузку bg одновременно (без виртуальных машин)?

2
Вы пытались поднять класс планирования тяжелого процесса с помощью ionice? Что вы имеете в виду под "фоновым процессом?" Низкие значения nice имеют более высокий приоритет, поэтому это может быть не то, что вам нужно. matthias krull 13 лет назад 0
Имеется в виду «высокий хороший» (интуитивно ожидая «высокий» как «хороший» и «важный»). Основная проблема, по-видимому, заключается в замедлении работы всей системы из-за одного процесса с низким приоритетом (ожидание низкого приоритета => не может замедлиться даже при желании). Vi. 13 лет назад 0

0 ответов на вопрос

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