Год или два назад, хотел решить проблему дёрганного UI в linux.
Проявлений у неё много, но простейший кейс, это однопоточный процесс, заставляющий дёргаться всё остальное на четырёхядерном железе.
Микрофризы на разных программах разной силы. Скажем, chromium более чувствителен, чем firefix. Но даже в emacs они порой ощутимы.
Перепробовал тогда всё: приоритеты, cgroups, тюнинг CFQ, пересборка debian stable без tickless и с 1000hz.
Всё впустую. И в сумме, и по отдельности.
Да, cgroups вполне успешно душит общее использование CPU низкоприоритетной группой, но когда надо поскроллить в хромиуме, в группе гораздо с гораздо более высокими cpus shares, лаги никуда не деваются.
Не люблю наколенные поделки, но раз в прошлом ничего не получилось, попробовал стороннее ядро http://https://liquorix.net
Честно говоря, немного шокирован результатами. Моя конфигурация cgroups там не работает, только скрипт повышающий приоритет декстоп-ориентированым процессам, но на этом с ара-тюнингом с моей стороны всё.
Так вот: я вообще не могу навскидку понять, завершилась моя фоновая однопоточная числодробилка, или нет.
Другой типичный юзкейс: проявка raw в rawtherapee, пока в picture-in-picture фаерфокс играет что-то с ютуба.
На стоковом ядре, или из бекпортов, видео жёстко лагало и периодически просто фризилось на несколько секунд, понижение приоритета rawtherapee не помогало.
С ядром liquorix и rawtherapee с nice 10 вижу, как периодически выпадают кадры из видео, когда rawtherapee пытается всё процессорное время сожрать, но общая плавность вполне сохраняется.
nice начинает наконец реально работать с точки зрения отзывчивости. Долгоиграющий многопоточный пожиратель cpu с nice 19 не то чтобы совсем уж незаметен, но доставляет меньше проблем.
Из совсем неожиданных эффектов: очень быстро переключаются рабочие столы. Редко что-то завершаю, от того у меня полно программ и окон, и почему-то на стоковом ядре, даже без нагрузки, нужно немного времени чтобы всё нарисовать.
Казалось, это норма. Оказывается нет.
Сижу с этим ядром на одной из машин уже месяц, пока проблем не было.
Работают ли числодробилки медленнее? Не знаю. Я бы не огорчился и от 20% пенальти по общему runtime.
Из нехорошего: там ещё кучи каких-то патчей, решающих проблемы, которых у меня нет. Стрёмненько.
Ядра пекутся как пирожки, а не раз в вечность. Тоже стрёмненько.
Нет поддержки x86.
Пока из недостатков вроде всё.
TL;DR: MuQSS делает всё, о чём мы мечтали, и без ручного тюнинга.