От Майкъл ЛарабелЕдин от най-честите и болезнени въпроси е как

...
От Майкъл ЛарабелЕдин от най-честите и болезнени въпроси е как
Коментари Харесай

Влиянието на защитата от 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 ядрото с конфигурирани пачове, както и без тях.

На всички компютри бе конфигурирана дистрибуция с 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 ядро, употребявано в сървърните дистрибуции.

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



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

Ето ги и конфигурациите на компютрите в този тест:
Процесор 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 – т.е., с интензивни входно-изходни процеси и/или постоянно взаимоотношение с ядрото на операционната система. Натоварва се най-вече централният процесор и натоварването не зависи доста от процесорния кеш.

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



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



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



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



Сървърът за PostgreSQL е едно от действителните приложения, което осезателно понижава скоростта си след инсталирането на пачовете. В този съответен тест разликата за процесорите на Intel е 5-8%, а за EPYC – 1%.
#td_uid_41_5b8b7cc0d3374.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_5b8b7cc0d3374.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_5b8b7cc0d3374.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 е графичният редактор GIMP. Разликата при Intel е 5-10%, а при AMD – 0-2%.



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

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

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

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

В теста за основаване на потоци също се вижда забележителната разлика сред процесорите на Intel и на AMD.
#td_uid_42_5b8b7cc0d526d.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_5b8b7cc0d526d.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_5b8b7cc0d526d.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_5b8b7cc0d526d.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
Така стоят нещата с продуктивността при Linux 4.19 ядрото след инсталирането на пачовете против хардуерните уязвимости. Трябва да се има поради, че в случай че вашата компютърна система е отворена за ненадеждни консуматори и код, ще се наложат спомагателни дейности, като да вземем за пример задействането на ключа l1tf=full и даже до изключването на SMT/HT, което още повече ще намали продуктивността на системата.

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

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР