В скором времени в Linux-ядро будет принят патч,
который повышает интерактивность выполнения десктоп-задач, что
позволяет беспроблемно выполнять повседневные задачи, такие как
просмотр веб-сайтов и проигрывание видеороликов, даже в том случае,
если процессор очень сильно нагружен фоновыми приложениями, например,
многопоточной компиляцией, математическими расчётами, участием в
различных вычислительных проектах и т.д.
Данный патч специальным образом разбивает выполняемые задачи на
группы в привязке к TTY, которые затем получают процессорные такты
более равномерно, что позволяет, например, запустить в фоне компиляцию
какого-либо приложения с количеством заданий, превышающих количество
ядер процессоров в 2-3-4 и более раз, при этом остается возможность
по-прежнему пользоваться плавной прокруткой в веб-браузере, что
позволяет добиться загрузки веб-страниц без задержек, связанных с
высокой загрузкой системы.
Размер патча
составляет всего около 200 строк. По замерам самого автора во время
критически высокой загрузки системы (make -j10), максимальная
отзывчивость уменьшилась в 10 раз, средняя отзывчивость улучшилась в 20
с лишним раз. К сожалению окно приема изменений для включения в ядро
2.6.37 уже закрыто, поэтому новая возможность будет интегрирована в
ядро 2.6.38. Активация нового механизма группировки задач в
планировщике производится через переменную
/proc/sys/kernel/sched_autogroup_enabled.
Линус Торвальдс высоко оценил
работу автора, на собственном примере убедившись, что даже при запуске
64 копий компилятора GCC (make -j64, load average выше 50) система
по-прежнему оставалась полностью работоспособной и отзывчивой. Не
стесняясь выражений, Торвальдс назвал этот патч "killer feature" (что
приблизительно значит "убойная штука"). Наглядно оценить разницу в
работе нагруженной системы с патчем и без него, можно на данных видеороликах. Источник
|