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

25
1138

Един от най-честите и болезнени въпроси е как се отразява защитата от 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 NVMe
  • Intel 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%.

Друга реална програма, която сериозно намалява производителността си заради 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.

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

 


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

25
ДОБАВИ КОМЕНТАР

avatar
9 Коментари
16 Отговори на коментарите
15 Последователи
 
Коментарът с най-много реакции
Най-горещият коментар
16 Автори на коментарите
IRfanBlBAxOxngc-bgХР исто Автори на последните коментари
  Абонирай се  
нови стари оценка
Извести ме за
Windows > linux
Windows > linux

Както се вижда Линукс е бавен и бъгав, аз ползвам и Windows 10 – много по-стабилен, бърз и удобен е. Линукс се ползва от двама човека в световен мащаб.

абе
абе

Типичен windows дебил. Та нали същите уязвимости намаляват и производителността на Windows в същата степен. Но за това влошаване на параметри никой от Майкрософт няма да ти каже. Защо да си тревожат умствено-ограничените потребители.
А, и браво на модератора, директно си сложи лайковете на 19 броя, похвално.

Windows > linux
Windows > linux

Но дори и с тях производителността на Windows е по-добра от линукс.

модерен
модерен

под всяка статия Windows има повече лайкове защото е много по-използван и популярен.

TGR
TGR

Абе, ти нормален ли си?

Хората сравняват производителност на хардуер, тоя го обръща на. . ..

Това ти разбира кухата глава.

НАПЪЛНО СЪМ УБЕДЕН, ЧЕ НЕ СИ РАЗБРАЛ 89% ОТ ИЗПОЛЗВАНИТЕ ТЕРМИНИ И ПРОЦЕДУРИ.

win?
win?

Бъгъв, бавен? Май си ти, по-точно сигурно е!
Тази уязвимост, ако си забелязал, о безмозъчни, е хардуерна! Зашива се софтуерно и затова се изисква процес, който забавя останалата работа на процесора!
Бъгав викай на Уин-а, който се насира от вируси и всякакви познати и непознати атаки.

BlB
BlB

Какъв идиотизъм! Статията е за калпавите Intel процесори а не за Linux! Повече от година следя тук писаниците за Linux и виждам че вече някой яката модерира! Все едни и същи глупости за Linux които повече от 100% не са верни! Явно пазара се пази с какви ли не действия! На война като на война! Айде да не вземем да модерираме и ние!!!

модерен
модерен

Няма никакъв смисъл човек да си губи времето с Линукс. По-добре Windows или ако имаш пари – Mac.

kolon
kolon

ами то … mac os май че и тя беше unix-базирана. димек и тя от родата на linux. аз поне тъй знам. ма щом викаш!

модерен
модерен

Нищо общо нямат, Mac OS е светлинни години по-напред от линукс.

kolon
kolon

ти как точно ги измери тез светлинни години? колко години си работил с mac os и колко години си работил с linux, че така категорично отсече?

kolon
kolon

леле, леле, леле! каква ли ша да е тас linux дистрибуция, дет по цял ден да й пишеш команди!? той тоз твоя асоциалния да не я измисля сега тая дистрибуция!? да ни е някой linux разработчик пък ти да не си разбрал?

хаха
хаха

Хибридите на Путлер налазиха и Калдата, а този съвсем е изтрещял горкия с пропаганда за Уиндоус. Нещо му са се бъгнали опорните точки, хаха.

kolon
kolon

ава чувам ини раути при windows-а имало вечи нещо кат dual-boot! чиляк ко риче моело да си зареди или win-10 или ubuntu. ма ни знам дал е вярно!

kolon
kolon

ни дей тъй, ва чиляк! сичкуту сървър у щатити се под linux работи, да знаш!

kolon
kolon

а, да! дан забрая! сичките android по смарт-фоните и те май биле unix-базирани. димек и те от linux-родата. ама и туй мое да ни е вярно!

Мартин
Мартин

Добре ще е да видим тестове и под Windows,макар резултатите да са предвидими.То Win7 като му инсталираш всички ъпдейти и кляка видимо още преди да бяха излезли Spectre и Meltdown,дори рутерът ми DLINK като му сложих последният Security firmware се забавя.

Gosho
Gosho

Ами след обновен биос и със последните ъпдейти на windows 10, на онова популярното тестче cpu benchmark (passmark) процесорчето ми изкара 3500 точки, вместо 4600 (както преди) , т.е. с 30% надолу или 2 поколения назад.

win?
win?

Да, Уина не може да използва пълноценно 64-ядрените на АМД. Той използва само до около 32 ядра и от там нагоре…. започва надолу. Не са му ясни многонишковите операции. МАК-а е FreeBSD, което е UNIX-подобна, но моднато на Ейпъл. Андроид е Linux, което е UNIX-подобна, но моднато на Гугъл. Уин е Уин, като по-рано е бил MS-DOS, който е купен DOS и после преименуван. Като най-интересното е, че вируси най-вече има само за Уин. И тази система, ако може да се нарече така, присъства изцяло само на потребителски компютри, защото другаде не може. И то заради налагане, купуване и т.н.… Виж още »

Коментар
Коментар

и аз искам да си купя нов сървър ама няма, що не правят дъна и за простосмъртните… чак почвам да се изнервям вече. Излиза в.2 пък… за epyc 3000 – няма, за ryzen v1000 сега излизат..

linuks
linuks

linuks e nai-dobrorto.Koito ne go polzva zna4i 4e nemoje da prodramira.

ХР исто
ХР исто

mnogo sii zabaven

ngc-bg
ngc-bg

Благодаря за статията! Вчера видях резултате в phoronix. Резултатите са ясни и достатъчно говорящи. Въпроса ми обаче е защо тук се въдят толкова хора, които парадират с незнание и простотия? Фенчета – разбрали, недоразбрали, обръщат коментарите на win vs linux и изток vs запад. Неграмотност ли е, злоба породена от некадърност ли е или просто са платени драскачи?! Имам усещането, че интернет форумите в България (не само тук) са налазени от няколко стотин муньовци, бълващи глупости с цел разводняване на дискусиите, налагане на политически възгледи и какво ли още не, но не и по темата! Че заради такива профанизирани субекти… Виж още »

AxOx
AxOx

Както в статията се казва – тези пачове са необходими САМО ако имаш софтуер който не е сигурен. Аз смятам, че ако си ползваш легалние програми не ти трябват никакви пачове и можеш да си ползваш компютъра на 100%. Друг е въпроса, че много ОС вече не ти дават възможност да избираш… липсва ми времето когато софтуера са правеше да ти дава свобода и избор.. сега се чувствам като заложник. Може много хора да не харесват Линукс, но факт е, че линукс Минт е една от единственните ОС които не ти крадат данни, дават ти избор както беше преди и… Виж още »

IRfan
IRfan

Като цяло за домашни потребители тези уязвимости може и да се пренебрегнат, ако се използват легални софтуери, а и голяма част от обикновенните потербители са подложени на много по-сериозни рискове в ежедневното си ползване на компютрите. Ъпдейтите на Windows 10, могат да се изключат, малко е играчка но се спират, но така е много по-лесно да се възползват от твоята система. Далеч по-сериозен е проблемът с всички корпоративни системи, които използват тези процесори. Поради това е и дискусията за забавянето на производителността в следствие на софтуерните пачове. Появиха се нови Intel чипове с хардуерен пач на тези проблеми, но все… Виж още »