Влиянието на защитата от Spectre, Meltdown и Foreshadow върху производителността на Linux 4.19

От Майкъл Ларабел

Един от най-честите и болезнени въпроси е как се отразява защитата от Meltdown/Spectre, а сега още и от L1TF/Foreshadow върху производителността на централните процесори.

Започналото през месец август разработване на новото Linux 4.19 ядро наля масло в огъня не само за x86_64 процесорите, но и за POWER/s390/ARM. Аз тествах три компютърни системи с процесори Intel Xeon, две системи с чипове AMD EPYC, както и виртуални машини, инсталирани на тези компютри, за да може пълноценно да се измери производителността на Linux 4.19 ядрото с инсталирани пачове, както и без тях.

    Spectre, Meltdown  Foreshadow    Linux 4.19

На всички компютри бе инсталирана дистрибуция с Linux 4.19-rc1 ядрото, изляло преди десетина дни. Пачовете за Intel включват изолация на таблицата за страниците на оперативната памет (PTI/KPTI) за Meltdown и различните пачове срещу спекулативното изпълнение на процесорните команди, включително и изчистването на указателя __user, използването на retpoline чрез IBPB IBRS_FW, пачът за уязвимостта Speculative Store Bypass с помощта на prctl и seccomp, както и PTE инверсия и обнуляване на условния кеш във виртуалните машини (за L1TF/Foreshadow).

По подразбиране в Linux не е изключена поддръжката на технологията Intel HT/SMT за многопоточна работа, осигуряваща тотална защита от тези хардуерни уязвимости. Това е добре да се знае, когато има съмнения за използване на ненадежден код във виртуалните машини. Ако все пак се избере абсолютна защита и се изключи SMT, то влиянието върху производителността е много по-голяма и много по-забележима поради двойно по-малкото достъпни потоци. Провайдърите на облачни услуги изглежда настройват своите сървъри по такъв начин, че SMT потоцитe да нямат нищо общо с потребителите и да се използват само за вътрешни нужди. По този начин се избягват очевидно огромните загуби от изключването на Hyper Threading. Тук ще се спрем само върху защитата на стандартното Linux ядро, използвано в сървърните дистрибуции.

    Spectre, Meltdown  Foreshadow    Linux 4.19

В AMD EPYC по подразбиране е реализирана защитата само на засягащите тези процесори уязвимости. Това са изчистването на указателя __user за Spectre V1, AMD Retpoline IBPB за Spectre V2 и изключването на Speculative Store Bypass (SSBD) за Spectre V4. Останалите уязвимости не присъстват в тези процесори.

    Spectre, Meltdown  Foreshadow    Linux 4.19

След тестването на всички конфигурации с Linux 4.19-rc1, тестовете бяха повторени с използването на различните флагове на реализираните в ядрото защити. Всички компютърни системи са тествани с операционната система Ubuntu 18.04.1 LTS x86_64 с ядрото Linux 4.19-rc1 от Ubuntu Mainline Kernel PPA, при инсталирани микрокодове за BIOS, GCC 7.3 и файловата система EXT4.

    Spectre, Meltdown  Foreshadow    Linux 4.19

Ето ги и конфигурациите на компютрите в този тест:

Процесор Intel Xeon E3-1280 v5 Skylake на дънна платка MSI Z170A SLI PLUS, 16 GB оперативна памет (DDR4) и 256 GB флаш диск Toshiba RD400 NVMeIntel Xeon E5-2687W v3 Haswell върху дъно MSI X299 SLI PLUS, 32 GB оперативна памет (DDR4) и 80 GB Intel 530 SATA 3.0 SSDДва Intel Xeon Gold 6138 в стойка Tyan 1U с 96 GB RAM и Samsung 970 EVO NVMe SSD 256 GBВиртуална машина KVM, инсталирана на двупроцесорния сървър Xeon Gold. Тази VM бе единственият активен процес в компютърната система и бе конфигурирана с достъп до 80% от ядрата/потоците на централния процесор, 48 GB оперативна памет и виртуален диск с капацитет 118 GB. При тестовете, хардуерната защита бе изключвана както в хоста, така и във виртуалната машинаПроцесор AMD EPYC 7601 в сървъра Tyan 2U с 12 GB оперативна памет и 280 GB флаш диск Intel Optane 900p NVMeВиртуалната машина KVM на по-горния сървър AMD EPYC 7601. На нея са дадени достъп до 80% от ядрата/потоците на процесора (52 потока), 48 GB RAM и 120 GB виртуално дисково пространствоСървър AMD EPYC 7551 с дънна платка Gigabyte MZ31-AR0, 32 GB оперативна памет и Samsung 960 EVO 256GB NVMe SSD

Очевидно е, че конфигурациите на компютърните системи са много различни и те не са предназначени за сравнение една с друга, а именно за проверката на производителността при включена/изключена защита от хардуерните уязвимости в процесорите. Всички тестова са от пакета Phoronix Test Suite.

Тук са показни тестовете, които имат отношение към Spectre/Meltdown – тоест, с интензивни входно-изходни процеси и/или често взаимодействие с ядрото на операционната система. Натоварва се предимно централният процесор и натоварването не зависи много от процесорния кеш.

    Spectre, Meltdown  Foreshadow    Linux 4.19

Профилът CompileBench е вероятно най-лесният начин за показване влиянието на хардуерните уязвимости Spectre/Meltdown. В Linux 4.19 ядрото, при активиране на защитите, производителността на процесорите на Intel пада със 7-13%. А на процесорите а AMD – с 3-4%.

    Spectre, Meltdown  Foreshadow    Linux 4.19

Подобна е ситуацията при компилиране. При процесорите на Intel се наблюдава понижаване на производителността с 14-15%, а при AMD – 4-5%.

    Spectre, Meltdown  Foreshadow    Linux 4.19

При компилирането на Linux ядрото производителността спада с 2%.

    Spectre, Meltdown  Foreshadow    Linux 4.19

Много добре се вижда намаляването на производителността при използването на теста Hackbench, измерващ скоростта на създаването на нови процеси и скоростта на обмена на данни между тях. В процесорите Intel производителността намалява с 20%, с изключение на Xeon Gold. В AMD EPYC разлика в производителността няма.

    Spectre, Meltdown  Foreshadow    Linux 4.19

Сървърът за PostgreSQL е едно от реалните приложения, което осезателно намалява скоростта си след инсталирането на пачовете. В този конкретен тест разликата за процесорите на Intel е 5-8%, а за EPYC – 1%.

#td_uid_41_5b8ba2c6ceffa .td-doubleSlider-2 .td-item1{background:url(https://i0.wp.com/www.kaldata.com/wp-content/uploads/2018/09/Gimp-1.jpeg?resize=80%2C60&ssl=1) 0 0 no-repeat}#td_uid_41_5b8ba2c6ceffa .td-doubleSlider-2 .td-item2{background:url(https://i0.wp.com/www.kaldata.com/wp-content/uploads/2018/09/Gimp-2.jpeg?resize=80%2C60&ssl=1) 0 0 no-repeat}#td_uid_41_5b8ba2c6ceffa .td-doubleSlider-2 .td-item3{background:url(https://i0.wp.com/www.kaldata.com/wp-content/uploads/2018/09/Gimp-3.jpeg?resize=80%2C60&ssl=1) 0 0 no-repeat}1 от 3     Spectre, Meltdown  Foreshadow    Linux 4.19     Spectre, Meltdown  Foreshadow    Linux 4.19     Spectre, Meltdown  Foreshadow    Linux 4.19

Друга реална програма, която сериозно намалява производителността си заради Spectre/Meltdown е графичният редактор GIMP. Разликата при Intel е 5-10%, а при AMD – 0-2%.

    Spectre, Meltdown  Foreshadow    Linux 4.19

СУБД REDIS в системата с Intel Skylake E3 v5 се забавя с 11%, а при другите процесори на Intel – с 5-7%. При компютрите с AMD EPYC разликата е 1-5%.

    Spectre, Meltdown  Foreshadow    Linux 4.19

Уеб-сървърът Nginx в случаите с процесорите Xeon показва разлика в производителността со минус 20%. Забавянето при AMD EPYC е от 1-2% до 6%.

    Spectre, Meltdown  Foreshadow    Linux 4.19

По подобен начин и уеб-сървърът Apache работи значително по-бавно след инсталиране на защитите за процесорите на Intel и няма почти никаква промяна при процесорите на AMD.

    Spectre, Meltdown  Foreshadow    Linux 4.19

В теста за скорост на създаване на файлове OSBench, системата с Intel Xeon се забавя с 13-16%, а системата с EPYC – с 6-9%.

 

В теста за създаване на потоци също се вижда значителната разлика между процесорите на Intel и на AMD.

#td_uid_42_5b8ba2c6d1996 .td-doubleSlider-2 .td-item1{background:url(https://i2.wp.com/www.kaldata.com/wp-content/uploads/2018/09/OS.jpeg?resize=80%2C60&ssl=1) 0 0 no-repeat}#td_uid_42_5b8ba2c6d1996 .td-doubleSlider-2 .td-item2{background:url(https://i1.wp.com/www.kaldata.com/wp-content/uploads/2018/09/Thr.jpeg?resize=80%2C60&ssl=1) 0 0 no-repeat}#td_uid_42_5b8ba2c6d1996 .td-doubleSlider-2 .td-item3{background:url(https://i1.wp.com/www.kaldata.com/wp-content/uploads/2018/09/Progs.jpeg?resize=80%2C60&ssl=1) 0 0 no-repeat}#td_uid_42_5b8ba2c6d1996 .td-doubleSlider-2 .td-item4{background:url(https://i2.wp.com/www.kaldata.com/wp-content/uploads/2018/09/Create.jpeg?resize=80%2C60&ssl=1) 0 0 no-repeat}1 от 4     Spectre, Meltdown  Foreshadow    Linux 4.19     Spectre, Meltdown  Foreshadow    Linux 4.19     Spectre, Meltdown  Foreshadow    Linux 4.19     Spectre, Meltdown  Foreshadow    Linux 4.19

Така стоят нещата с производителността при Linux 4.19 ядрото след инсталирането на пачовете срещу хардуерните уязвимости. Трябва да се има предвид, че ако вашата компютърна система е отворена за ненадеждни потребители и код, ще се наложат допълнителни действия, като например задействането на ключа l1tf=full и дори до изключването на SMT/HT, което още повече ще понижи производителността на системата.

 

Това бяха тестовете на сървърните процесори на Intel и AMD. В близко бъдеще възнамеряваме да проведем подобни тестове и за десктоп процесорите на двете компании.

Коментари
Все още няма коментари
Статистика
Прегледи 210
Коментари 0
Рейтинг
Добавена на02 Септ 2018
ИзточникKaldata

Тагове
Linux, Foreshadow, Meltdown, Spectre