Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность

в 10:24, , рубрики: Без рубрики

С момента обнародовании информации об уязвимостях Meltdown страсти успели уже поутихнуть. Microsoft успела выпустить патч, огрести с ним проблем, отозвать его и выпустить снова.

Так получилось, что у меня под рукой оказались две близких по характеристикам системы:
i5 7600K + Z270 и i7 3770K + Z77. На обеих системах установлена Windows 10 Pro с последним набором обновлений. Операционная система установлена на SSD, для тестов использовался отдельный NVME SSD, один и тот же в обоих случаях. Графические тесты проводились по принципу «гулять так гулять», на GTX 1080Ti, но, вместе с тем, в реалистичных для такой видеокарты сценариях. То есть никакого понижения настроек графики для выявления чистой незамутнённой процессорозависимости не делалось. На этом железе было решено проверить правдивость заявлений Microsoft о влиянии патчей на производительность современного и старого, но ещё не особо и устаревшего, железа.

Исполнительный вице-президент Microsoft по Windows Терри Маерсон (Terry Myerson) в официальном блоге написал:

Резюмируя текущие результаты исследований, можно сказать следующее:

На компьютерах под управлением Windows 10 на современных процессорах (относящихся к поколениям 2016 года или более новым, то есть Skylake, Kabylake и более новые), тесты продемонстрируют замедление от силы на единицы процентов, которое подавляющее большинство пользователей не сможет заметить, так как в абсолютных величинах разница будет измеряться миллисекундами.

Компьютеры с Windows 10 на относительно старых процессорах (относящихся к поколениям до 2015 года включительно, Haswell и более старые) в некоторых тестах могут показать более значительное падение производительности, возможно некоторые пользователи смогут его заметить.

Производительность систем под управлением Windows Server на любых процессорах заметно пострадает, особенно на приложениях интенсивно использующих ввод-вывод, при активации изоляции недоверенного кода.

Для тестирования различных аспектов производительности систем использовались:

  • 3DMark Time Spy 1.1
  • CineBench R15.038
  • AS SSD Benchmark 1.7.4739.38088
  • Crystal DiskMark 5.5.0

Активация и деактивация изоляции процессов выполнялось утилитой InSpectre. На материнскую плату на Z270 установлено обновление BIOS с патчами микрокода.

Ожидаемый результат: в соответствии с официальными заявлениями Microsoft, деградация производительности на старом CPU должна быть в разы больше. Исходя из анализа публикаций и заявлений представителей Microsoft, больше всего должен пострадать ввод-вывод.

Поехали!

(небольшая ремарка перед скриншотами с результатами)

Полностью равноценные конфигурации с первого раза протестировать не удалось из-за отсутствия M.2 слота на старой материнской памяти и отсутствием в наличии PCI-E->M.2 рэйзера. Он был заказан на одной всем известной китайской торговой площадке, а я тем временем прогнал тесты на NVME SSD (A-Data XPG SX8000 512GB) на Kaby Lake и на SATA (Silicon Power S55 240GB (Phison) на Ivy Bridge. Результаты получились напрямую несопоставимые, но любопытные.

Cкриншоты тестов:

i5 7600K@4315(102.76*42)

Патч деактивирован:

Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность - 1

Патч активирован:

Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность - 2

i7 3770K@4355(103.7*42)

Патч деактивирован:

Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность - 3

Патч активирован:

Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность - 4

Хм… результаты получились даже более чем интересные. Производительность самих CPU в сложных расчётах менялась в пределах погрешности. Пострадал больше всего, как и опасались в Microsoft, именно ввод-вывод. А дальше начинаются расхождения с тем, что ожидалось.

Падение производительности ввода-вывода на новом процессоре (Kaby Lake, i5 7600K) после активации патча в худшем случае, в сценарии CrystalMark Write 4K, составило более 70%. Семьдесят два процента! Если так себя введёт IO на новом процессоре, то что будет с откровенно старым?! А на старом i7 3770K 2011 года выпуска падение производительности составило в худшем случае около 6%. Да и абсолютные цифры для таких разных накопителей при активированном патче разнятся не сказать чтобы в разы. Неужели Microsoft и Intel кривят душой? Или мы чего-то не заметили?

Так где же бутылочное горлышко? Это ещё предстояло выяснить, оставалось дождаться PCI-E -> M.2 рэйзера и повторить тесты. Забегая вперёд, скажу, что тестов в равных условиях не получилось. NVME SSD упёрся в пропускную способность PCI-E.2 x2.

Вот результаты прогона тестов:

Патч деактивирован:

Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность - 5

Патч активирован:

Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность - 6

Сводная таблица результатов:

Как в реальности патч от уязвимостей Meltdown и Spectre влияет на производительность - 7

Итог

Плохие новости

Быстрые накопители даже на современных CPU после установки патча теряют до 70% производительности в ряде сценариев.

Хорошие новости

  1. Даже очень быстрые накопители теряют в производительности на старых CPU в худшем случае не больше, чем на новых, не смотря на громкие заявления Intel. Достоверно проверить пока не удалось в абсолютно равных условиях. Но! С учётом ограничения пропускной способности на старых процессорах они теряют в %% меньше. Старичкам явно рано на покой, как бы ни хотелось Intel продать побольше новых камней.
  2. Обычные бытовые SSD теряют в производительности очень немного. Про HDD я вообще молчу. Т.е. в быту, не используя компьютер как сервер баз данных, заметить разницу на обычном железе нужно очень постараться.
  3. В чисто процессорной нагрузке разницы до и после нет вообще.
  4. Геймеры могут не переживать — скорость отрисовки меняется от активации патча в пределах погрешности.

Автор: Alexander

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js