В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В Linux подкрутили код ACPI, замедлявший работу систем AMD Zen 3

В ядро Linux внесены исправления, призванные ограничить использование устаревшего приема — фиктивной операции ожидания, тормозящей CPU при его переводе в состояние сна. Современные системы AMD и Intel не нуждаются в такой помощи, более того, при определенных рабочих нагрузках трюк, в котором нет необходимости, может вызвать существенное снижение производительности.

В 2002 году в Linux была добавлена поддержка стандарта ACPI (Advanced Configuration and Power Interface), согласно которому управление энергопотреблением осуществляется на уровне операционной системы. Спецификации предусматривают возможность перевода устройства в состояние сна разной степени, а также использование технологий мгновенной готовности (пробуждение по сигналу).

Однако некоторые чипсеты оказались неспособными быстро реагировать на сигнал STPCLK# (stop-clock, вызывает состояние функционирования C2, при котором питание процессора отключается, но регенерация ОЗУ продолжается; для возврата в рабочий режим требуется время). В связи с этим был придуман обходной маневр — имитация ожидания, при которой система просто считывает данные ввода-вывода, задерживая обработку инструкций.

Соответствующий код появился в Linux вместе с поддержкой ACPI и присутствует до сих пор. Современные процессоры Intel его не используют, так как давно засыпают с помощью инструкции MWAIT — ее использование обеспечивает более тонкое управление энергопотреблением неактивного состояния (их семь против трех по ACPI).

Чипсетам AMD фейковая операция ожидания тоже больше не требуется, однако для них альтернативы нет. В то же время трюк двадцатилетней давности при определенных условиях может оказаться губительным. Недавнее исследование показало, что он может сильно замедлить работу AMD Zen 3 при рабочих нагрузках Linux с быстрым переключением состояний занятости и простоя. Падение производительности особенно заметно на платформах Ryzen Threadripper и EPYC, которые используют многоядерные процессоры.

Во избежание таких потерь был предложен патч для Linux, который лимитирует использование потерявшего актуальность кода: он пускается в ход только на старых платформах (в случае с Intel это системы с микроархитектурой древнее Nehalem). Концепцию заплатки подхватил Линус Торвальдс; в итоге долгожданный фикс был добавлен в новую сборку ядра Linux (6.0), выпуск которой запланирован на 2 октября.

Фоновая служба Windows 11 может тайно съедать гигабайты ОЗУ

Microsoft снова заставила пользователей Windows 11 присматриваться к системным службам. На этот раз поводом стало изменение поведения одного из сервисов в Windows 11 24H2, 25H2 и Windows Server 2025 — теперь он запускается по умолчанию и может постоянно работать в фоне, а не только «по требованию». Это сразу вызвало опасения: не приведёт ли такой подход к лишней нагрузке на систему?

На фоне обсуждений среди участников форума Neowin всплыл старый знакомый — служба Delivery Optimization.

Один из постоянных участников форума с иронией заметил, что «хуже уже не будет, если только это не Delivery Optimization, которая иногда просто съедает всю память и сидит так ради удовольствия».

И почти сразу после этого пользователь на площадке Reddit подтвердил, что шутка не так уж далека от реальности. Он провёл собственное наблюдение за работой Delivery Optimization (DoSvc) и обнаружил, что со временем служба начинает потреблять всё больше оперативной памяти — заметно больше, чем другие системные процессы. По его словам, такая картина наблюдается уже около месяца и очень напоминает утечку памяти.

Delivery Optimization — это служба, которая отвечает за доставку обновлений Windows и приложений из Microsoft Store. Она работает по принципу P2P: компьютер может не только загружать обновления с серверов Microsoft, но и получать их от других устройств в локальной сети или даже в интернете. В теории это должно экономить трафик и ускорять обновления, но на практике сервис иногда ведёт себя слишком прожорливо.

Проблема в том, что при длительной работе Delivery Optimization может постепенно накапливать использование ОЗУ и не спешит его освобождать. Да, функцию можно ограничить или полностью отключить в настройках Центра обновления Windows, но по умолчанию она включена — и далеко не все пользователи знают, что именно она грузит систему.

На этом фоне решение Microsoft отложить внедрение ещё одной автоматической функции обновлений до 2026 года выглядит уже не таким странным. Компания прямо сослалась на отзывы пользователей и администраторов. А рекомендация иметь минимум 16 ГБ оперативной памяти для «игровых ПК» теперь звучит не как маркетинг, а как суровая необходимость.

RSS: Новости на портале Anti-Malware.ru