Łatka Google'a na lukę w AMD i Intelach jednak spowalnia. Ale nie zgadniesz jak

Łatka Google'a na lukę w AMD i Intelach jednak spowalnia. Ale nie zgadniesz jak10.01.2018 13:27

Gdy głośno zrobiło się o atakachMeltdown i Spectre, najbardziej poszkodowanym okazał się Intel– wszystkie produkowane od 1995 roku jego procesory były podatnena te zagrożenia. AMD niezwłocznie zapewniło, że architekturajego procesorów na Meltdown jest odporna, zaś w wypadku Spectrewystarczą łatki software’owe, których wpływ na wydajnośćsystemu będzie znikomy. Niestety sytuacja nie wygląda tak różowo,jak czerwoni chcą ją nam przedstawić. Łatki Retpoline, mającezabezpieczyć przed drugą odmianą ataku Spectre, są już dostępne,jednak generowanego przez nie narzutu zlekceważyć nie można.

Łatki Kernel Page Table Isolation błyskawicznie wylądowały wlinuksowym kernelu, łatając podatność na Meltdown na procesorachIntela. Decyzją Linusa Torvaldsa nie są one ładowane naprocesorach AMD, dzięki czemu nie doświadczymy efektów ubocznych –znaczącego spadku wydajności w obciążeniach roboczych związanychz operacjami I/O, dostępem do sieci i zasobów dyskowych.

Z łatkami na Spectre sytuacja wygląda bardziej skomplikowanie.Atak ten, grożący zarówno procesorom Intela jak i AMD, zostałzneutralizowany za pomocą łatek Retpoline, stworzonych przedewszystkim przez programistów Google’a. Uniemożliwiają one atakiwstrzykiwania rozgałęzień, poprzez unikanie spekulatywnychniebezpośrednich rozgałęzień w kodzie kernela. Wydana w ostatniweekend wersja piąta łatek to około 200 wierszy kodu dla kernela,połączonych ze specjalnymi łatkami dla kompilatora GCC – i jakzapowiadają jej twórcy, obniży wydajność systemu o jakieś 1,5%.Można to przeżyć, a nawet zrekompensować optymalizacjami, prawda?

Zależy jednak w czym. Na łamach Phoronixa/OpenBenchmarkingpojawiły się wyniki testów wydajności uodpornionych na Spectresystemów, zarówno częściowo, poprzez same łatki na kernel(retpoline), jak i całkowicie, poprzez łatki na kernel i kompilator(retpoline+gcc). Michael Larabel przetestował zarówno procesoryIntel Kaby Lake i Coffee Lake, jak i AMD Ryzen/EPYC, jako żewszystkie one są podatne na Spectre.

Wolniej, szybciej, bez zmian?

Jak można się było spodziewać, w większości syntetycznychobciążeń roboczych zauważalnych różnic nie ma. Ale zarazemwidać też, że pojawiają się niespodziewanie nowe wąskie gardła,specyficzne dla danej platformy. Oto najważniejsze problemy, jakieprzynosi załatanie Spectre:

  • W teście losowego odczytu danych (Flexible IO Tester) procesoryCore i9-7980XE i Ryzen 7 1800X odnotowały po zastosowaniu łatekdrastyczne spadki IOPS, odpowiednio 34% i 36%. Co ciekawe, innetestowane procesory Intela i AMD ucierpiały jedynie minimalnie, anawet (Dual Xeon Gold 6138) uzyskały wydajność nieco wyższą.
  • W teście losowego zapisu danych (Flexible IO Tester) wspomnianyCore i9-7980XE utracił od 11% do 21% IOPS, odpowiednio dla łatekretpoline i retpoline+gcc. Niespodzianka: Ryzen 7 1800X nieco połatkach przyspieszył.
  • W teście sekwencyjnego zapisu danych znów najbardziej ucierpiałCore i9-7980XE, po łatkach szybkość zapisu spadła od 4%(retpoline) do 11% (retpoline+gcc).
  • W teście budowania projektu do kompilacji (Compile Bench InitialCreate) najwięcej oberwały procesory Intela: i7-8700K, i9-7980XE iDual Xeon Gold 6138 odnotowały spadki od 5% do 10%. Procesory AMDwyszły tu obronną ręką.
  • Czas samej kompilacji po zastosowaniu łatek nie uległ wydłużeniu– zarówno w Timed Apache Compilation jak i Timed Linux KernelCompilation procesory Intela i AMD wykazywały różnice poniżejbłędu pomiaru.
  • Jeśli chodzi o czystą wydajność procesora, to zupełnie nie maczym się przejmować, łatki na Spectre nie powodują tu żadnegomierzalnego zmniejszenia wydajności – pokazały to benchmarkiParboil (OpenMP), Rodinia, lzbench, John the Ripper czy C-ray.
  • Procesor AMD Epyc miał problemy z benchmarkiem webserwera ebizzy,który generuje obciążenia typowe np. dla sklepów internetowych –dużo wątków, częste alokacje i dealokacje dużych obszarówpamięci. Po zastosowaniu retpoline+gcc jego wydajność spadła ażo 13%. Ryzen 7 1800X zachował się zaś dziwnie – przy samychłatkach retpoline w benchmarku tym uzyskał o kilka procent większąwydajność, zaś z łatkami retpoline+gcc stracił 8%. ProcesoryIntela nie ucierpiały tu zauważalnie.
  • Prawdziwy dramat zaczął się przy obciążeniach bazodanowych.Wydajność Redisa w benchmarku LPOP (usuwanie i zwracanie pierwszegoelementu listy przechowanego jako klucz), przyniosło spadkisięgające nawet 35% (Core i3-7100 z łatkami retpoline+gcc). Cociekawe, wcale nie ma gwarancji, że zrezygnowanie z łatek wkompilatorze zawsze da mniejszy spadek wydajności – w wypadkuRyzena 7 1800X system załatany z retpoline+gcc był sporo szybszy odtego, który miał tylko retpoline. Na procesorze AMD Epyc było jużna odwrót.
  • Baza Redis w teście GET okazała się być na procesorze Corei9-7980XE szybsza o 11% po zastosowaniu samych łatek retpoline.Nieco przyspieszył też procesor Dual Xeon. Wszystko innespowolniło, albo nie zauważyło innych zmian.
  • Serwowanie statycznych stron po Apache (Apache Benchmark)najbardziej dotknęło procesory Intela – i7-8700K stracił 10%wydajności z retpoline+gcc, Dual Xeon Gold spowolnił o 7%. AMD Epyc– przyspieszył tymczasem o okrągły 1%.
  • Benchmark, który był prawdziwym pogromem w teście łatki naMeltdown, tj. PostgreSQL pgbench, w wypadku łatek na Spectre niewykazał żadnych zauważalnych różnic.

Spectre gorsze jednak niż Meltdown

Jakie można z tego wszystkiego wysnuć wnioski? Podobnie jak wwypadku łatek na Meltdown, załatanie Spectre powodować możespadek wydajności I/O i tych operacji, w których dochodzi dointensywnych interakcji z kernelem. Kluczowym słowem jest tu „może”– ponieważ nie musi. Z dostępnych na OpenBenchmarking.org wynikównie sposób wyciągnąć jakichś ogólnych wniosków – procesoryzachowują się bardzo różnie, względem wydawałoby się nawetpodobnych obciążeń roboczych.

Oznaczać to może tylko spore kłopoty dla operatorów centrówdanych, chmur i usług hostingowych. W razie odnotowania problemów zwydajnością nie będą mogli zignorować detali dotyczącychużywanego w serwerach hardware. Może się okazać, że akurat tenkonkretny model procesora po zastosowaniu domyślnych łatek(retpoline i łatki na GCC niebawem wejdą do głównej linii)powoduje drastyczne opóźnienia, podczas gdy konkurencja nie ma ztym problemu, bo akurat zastosowała inne procesory.

Wybórmiędzy Intelem i AMD stał się o wiele bardziej skomplikowany niżdotąd.

Źródło artykułu:www.dobreprogramy.pl
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.