К основному контенту

Энергопотребление Linux ядер за последние три года

Потребление энергии для ядра Linux всегда было большой проблемой. Разработчики Android очень много работали над тем, чтобы добавить улучшенное управление питанием и энергосбережение в свои версии ядра. Много из этих улучшений были возвращены в оригинальное ядро Linux.

Но действительно стало ли энергопотребление меньше или больше? В этом небольшом обзоре мы рассмотрим как изменилась энергоэффективность linux ядер за последние три года. За это время было выпущено 19 релизов и действительно интересно чего смогли добиться разработчики в такой важной для портативных устройств области.

Первым ядро, которое принимало участие в тестировании было 3.11, а самое новое - 4.9. Операционная система - Ubuntu 16.10. Тестирование проводилось на системе с процессором Intel Core i7 4790K, 16 Гб оперативной памяти и интегрированной видеокартой HD Graphics 4600. Все ядра были получены из PPA Ubuntu.



При работе Counter Strike GO все 19 релизов ядра показали примерно одинаковый результат. Даже можно сказать, что последние ядра используют больше энергии чем ядра ветки 3.х. Ядро Linux 3.11 потребляло 63 Ватт, в то время как ядру 4.9 уже понадобилось 69, в одном и том же тесте.





Не если посмотреть на производительность на 1 Ватт потребляемой мощности, то показатели были лучше всего у ядра 4.0.



Dota 2 тоже не показала серьезных отличий во время тестирования.





Здесь отношение мощности к потребляемой энергии более шаткое чем у CS GO, но Linux 4.0 по-прежнему показывает лучшие результаты.

Возможно, игры не показали точного результата, из-за того, что игра могла создавать разную нагрузку на процессор в разных тестах. Но дальше идут однородные операции и тут можно увидеть более четкую картину. Тестирование при нагрузке на жесткий диск:





В последних нескольких ядрах производительность на 1 Ватт немного просела, но в самом свежем релизе все выровнялось.



Но тенденция сохраняется, потребление энергии старыми ядрами меньше чем новыми.







В тесте  FFTW ничего не изменилось.





То же самое с энергопотреблением PostgreSQL.



Redis показывает примерно одинаковые результаты для всех ядер.