Przeprowadzałem proste testy porównawcze na naszym (na żywo) serwerze bazy danych w godzinach poza szczytem i zauważyłem, że zapytania zwróciły nieco błędne wyniki testu porównawczego .
Od dawna włączyłem plan „Zrównoważonego” oszczędzania energii na wszystkich naszych serwerach, ponieważ doszedłem do wniosku, że nie są one w pobliżu wysokiego wykorzystania i w ten sposób możemy zaoszczędzić trochę energii.
Zakładałem, że nie będzie to miało znaczącego, mierzalnego wpływu na wydajność. Jednakże, jeśli funkcje oszczędzania energii procesora są wpływając typowe wydajności - szczególnie na wspólnym serwerze bazy danych - to nie jestem pewien, że warto!
Byłem trochę zaskoczony, że nasza warstwa internetowa, nawet przy obciążeniu 35-40%, zmniejsza taktowanie z 2,8 Ghz przy 1,25 V do 2,0 Ghz przy 1,15 V.
W pełni oczekuję, że obniżanie częstotliwości w celu oszczędzania energii, ale ten poziom obciążenia wydaje mi się na tyle wysoki, że powinien on przyspieszyć do pełnej prędkości zegara.
Nasz serwer bazy danych o 8 procesorach ma mnóstwo ruchu, ale wyjątkowo niskie wykorzystanie procesora (tylko ze względu na charakter naszych zapytań SQL - wiele z nich, ale naprawdę proste zapytania). Zwykle siedzi na poziomie 10% lub mniej. Więc spodziewam się, że zmniejszało to nawet bardziej niż powyższy zrzut ekranu. W każdym razie, kiedy zmieniłem zarządzanie energią na „wysoką wydajność”, zauważyłem, że mój prosty test porównawczy zapytań SQL poprawił się o około 20% i stał się bardzo spójny z jednego uruchomienia do drugiego .
Wydaje mi się, że myślałem, że zarządzanie energią na lekko obciążonych serwerach było korzystne dla obu stron - bez utraty wydajności i znacznych oszczędności energii, ponieważ procesor jest najczęściej konsumentem nr 1 lub 2 na większości serwerów. Wydaje się, że tak nie jest; zrezygnujesz z pewnej wydajności przy włączonym zarządzaniu energią procesora, chyba że serwer jest zawsze tak obciążony, że zarządzanie energią zostało skutecznie wyłączone. Ten wynik mnie zaskoczył.
Czy ktoś ma jakieś doświadczenia lub rekomendacje dotyczące zarządzania energią procesora dla serwerów? Czy to coś włączasz lub wyłączasz na swoich serwerach? Czy mierzyłeś dużo energii, którą oszczędzasz? Czy przeprowadzałeś testy porównawcze z włączaniem i wyłączaniem?
źródło
Odpowiedzi:
Nie jestem pewien co do serwerów, ale obecne myślenie w urządzeniach wbudowanych nie powinno przeszkadzać w krokach między niskim zużyciem energii a płaskością, ponieważ dodatkowy czas pochłonie twoje oszczędności energii, więc w zasadzie zużywają mało energii, dopóki nie uzyskają rzeczywista ilość obciążenia procesora, w którym to momencie przełączają się na najszybszy możliwy, aby mogli zakończyć pracę i wrócić do pracy na biegu jałowym przy niskiej mocy.
źródło
Zawsze wyłączałem wszelkiego rodzaju zarządzanie energią na serwerach. Jestem ciekawy tego, czego doświadczyli inni, ale zawsze zakładałem, że jeśli serwer nie osiąga taktowania, zawsze będzie jakieś opóźnienie, aby „zwiększyć” procesor do 100%, aw ustawieniach centrum danych takie opóźnienie jak to jest niedopuszczalne.
Podane przez Ciebie dane wydają się potwierdzać to założenie. Tak więc nie przeprowadziłem żadnych konkretnych testów, ale wydaje się, że nie powinieneś używać żadnej technologii oszczędzania energii w systemie Windows lub BIOS. Wyłączam nawet ustawienia „Wyłącz sieć” i karty PCI, aby zachować najwyższą ostrożność.
źródło
Ile mocy to faktycznie cię uratuje :
Jeśli zdecydujesz, że ta funkcja może zagrozić stabilności twoich serwerów (mam z tym doświadczenie), możesz szukać gdzie indziej oszczędności energii.
Spróbuję dowiedzieć się, ile energii może to zaoszczędzić na liczbie serwerów (chociaż być może już to zrobiłeś). Ponieważ wykres zamieszczony w odpowiedzi zawiera wartości procentowe, dla Twojej firmy oszczędności mogą w rzeczywistości być bardzo małą rzeczywistą mocą. Jeśli nie masz wielu serwerów, może to nie być tak dużo, a uzyskanie światła aktywowanego ruchem lub czegoś takiego w biurze może zaoszczędzić więcej energii (nawet jeśli nie jest to tak zbywalne).
Pamiętam, jak czytałem kilka lat temu o jednym z głównych amerykańskich koncernów samochodowych (zapomnij który) wywierającym presję na zmianę emisji spalin z ich samochodów. Zamiast tego firma pokazała, że jeśli ograniczy niektóre fabryki, będzie to dla nich znacznie tańsze, a także przyniesie znacznie większe oszczędności emisji.
Nie zapomnij o dyskach:
możesz również sprawdzić, czy te funkcje oszczędzania energii nie obracają dysków, jeśli nie są używane. Może przez jakiś czas wszystkie wyniki zapytania SQL byłyby w pamięci RAM, dysk zostałby użyty i przejdzie w tryb uśpienia (Nie jestem pewien, czy tak to działa)? Gdyby tak się stało, byłaby to duża kara za wydajność, podczas gdy wszystko znów się obraca.
źródło
Przedmowa: Dokonuję pewnych przeskoków / uogólnień na temat Xeonów Intel i ich wydajności oszczędzania energii za pomocą SpeedStep. Czytając o procesorach Intel Xeon „ Yorkfield ” 45 nm, Enhanced Intel SpeedStep Technology (EIST) i Enhanced Halt State (C1E) wydają się być prawdziwym winowajcą sytuacji. Zgadzam się z twoim stwierdzeniem, że włączenie takich funkcji zarządzania energią pomogłoby w oszczędzaniu energii, ale gdy procesory potrzebowały energii pod obciążeniem, system powróciłby do normalnych ustawień prędkości zegara napięcia. Wygląda na to, że EIST i C1E mają pewne skutki uboczne, które nie są intuicyjnie sugerowane podczas korzystania z opcji / / lub w systemie BIOS. Po przeszukaniu wielu stron z overclockingiem wydaje się, że te dwa ustawienia w BIOS-ie powodują sporo frustracji.
From http://www.overclock.net/intel-cpus/376099-speedstep-guide-why-does-my-processor.html :
Podczas regulacji ustawienia wydajności dla „high performance” to najlepsze ustawienie dla serwera bazy danych jest prawdopodobnie, jestem dość pewny albo EIST i / lub C1E spowodowane procesory do pod wykonać, mimo że powinien mieć wrócił do normalnych ustawień, gdy obciążenie znacznie wzrosła. Największym zastrzeżeniem wydaje mi się „co jest znaczącym obciążeniem?” Według strony overclockers.net twierdzą, że EIST używa ustawień „schematów zasilania” do manipulowania ustawieniami procesora. Ale nic nie wskazuje na procent obciążenia ani na jak długo wiedzieć, kiedy należy przywrócić normalne napięcie procesorów.
Znowu nie jestem ekspertem od tematyki procesorów Intel, ale postawiłbym na to, że dostosowanie tych dwóch ustawień może zapewnić Ci oszczędności energii, których potrzebujesz, i wydajność, którą powinieneś uzyskać, ale pozostanie przy ustawieniu „maksymalnej wydajności” jest równie skuteczny bez konieczności ponownego uruchamiania.
źródło
Szybka odpowiedź brzmi: Oczywiście oszczędność energii wpłynie na wydajność.
Dłuższa odpowiedź nie jest zabawna. Zasadniczo wypróbuj ustawienie, przetestuj wydajność i zdecyduj, z czym możesz żyć.
Aplikacje i systemy są tak bardzo skomplikowane, że nie ma tutaj odpowiedzi „wytnij i wytnij”, poza „tak, wpłynie to na czas reakcji i inne prędkości systemu”. Jeśli jest o wiele wolniejszy niż dysk twardy lub sieć - cóż, masz pomysł. Testuj w rzeczywistości.
źródło
Zawsze staram się wirtualizować jak najwięcej serwerów, jak tylko mogę, ale tam, gdzie muszę „od zera” serwer, zwykle jest to, czego potrzebuję lub chcę całkowicie spójnej wydajności. W przypadku tych maszyn o kluczowym znaczeniu biznesowym NIGDY nie włączam niczego, co dotyczy oszczędzania energii, z dokładnie tych powodów, których doświadczasz.
*** bang-go-my-green-credentials *
źródło
Kilka spraw:
Sprawdź w systemie BIOS, aby upewnić się, że zarządzanie energią jest pod kontrolą systemu operacyjnego. Możliwe, że oprogramowanie to zarządza oprogramowaniem układowym, a zatem używa głupiego, nieoptymalnego zarządzania energią procesora.
Sprawdź, czy brakuje poprawek związanych z zarządzaniem energią. W dniu premiery systemu Vista / Server 2008 pojawiło się całkiem sporo.
Sprawdź szczegółową konfigurację dla Balanced. Możliwe, że inna funkcja oszczędzania energii powoduje obniżenie wydajności. Teoretycznie wydajność związana z EIST powinna być znikoma, ale z drugiej strony baza danych SQL ma unikalny ślad i możliwe jest, że zarządzanie energią procesora nieproporcjonalnie wpłynie na nią.
źródło
Niektóre informacje od Microsoft (format Word Doc, niestety)
Popraw efektywność energetyczną i zarządzaj zużyciem energii dzięki Windows Server 2008 R2
Te konkretne funkcje oszczędzania energii procesora na poziomie sprzętowym są oczywiście takie same w każdym systemie operacyjnym, to tylko kwestia, czy je włączysz.
Wykres oszczędności energii bez zarządzania mocą procesora w porównaniu do zarządzania mocą procesora:
Oczywiste jest, że (i ten wykres pokazuje to) przy wysokim poziomie wykorzystania zarządzanie energią procesora jest automatycznie wyłączane. Nie jestem jednak do końca pewien, czy przy niskim poziomie wykorzystania ma wpływ na ogólną wydajność serwera, np. Czas realizacji prostych zapytań SQL Server.
źródło
Nigdy nie powinieneś nigdy uciekać się do korzystania z ustawień systemu Windows lub Bios Speedstep, który jest dostępny na procesorach Intela, a także odpowiednik AMD. Mogą to powodować problemy, a widziałem takie problemy, w których przy Speedstep zegar procesora ciągle odbijałby się w górę iw dół, mimo że zużycie zasobów procesora było stałe.
Jeśli chcesz być ekologiczny i oszczędny, używać niskim poborze mocy, oznaczonych znakiem L przed nazwą modelu, takie jak L serii 54XX i L 55xx serii Intela.
EDYCJA: Przepraszam, gdybym sprawiał wrażenie, że ta funkcja zawsze zawiedzie, po prostu zostałem przez nią spalony, aw systemie o znaczeniu krytycznym nie mogę mieć tego rodzaju rzeczy, więc po prostu próbuję zostać z dala od tego.
źródło
Kiedy mówisz o wydajności na serwerze, istnieje kilka różnych sposobów patrzenia na nią. Widoczny jest czas reakcji (podobny do opóźnienia sieci) i przepustowość (podobny do przepustowości sieci).
Niektóre wersje systemu Windows Server są dostarczane z domyślnie włączonymi ustawieniami zrównoważonej energii. Jak zauważył Jeff. Windows 2008 R2 jest jednym z nich. Obecnie bardzo niewiele procesorów jest jedno-rdzeniowych, więc to objaśnienie dotyczy niemal każdego serwera Windows, na który się natkniesz, z wyjątkiem jednordzeniowych maszyn wirtualnych. (więcej na ten temat później).
Gdy aktywny jest zrównoważony plan zasilania, procesor próbuje zmniejszyć przepustowość zużywanej mocy. Robi to poprzez wyłączenie połowy rdzeni procesora w procesie znanym jako „parkowanie”. Tylko połowa procesorów będzie dostępna jednocześnie, więc zużywa mniej energii w okresach małego ruchu. Nie jest to problem sam w sobie.
Problemem jest fakt, że kiedy procesory nie są zaparkowane, podwoiłeś dostępne cykle procesora dostępne dla systemu i nagle niezrównoważiłeś obciążenie systemu, przenosząc go z (na przykład) wykorzystania 70% na wykorzystanie 35%. System patrzy na to i po przetworzeniu gwałtownego ruchu myśli: „Hej, powinienem to nieco cofnąć, aby oszczędzać energię”. I tak się dzieje.
Oto zła część. Aby zapobiec nierównomiernemu rozkładowi ciepła i mocy w rdzeniach procesora, ma on tendencję do parkowania procesorów, które nie zostały ostatnio zaparkowane. Aby to działało poprawnie, procesor musi opróżnić wszystko, od rejestrów procesora (pamięć podręczna L1, L2 i L3) do innej lokalizacji (najprawdopodobniej pamięci głównej).
Jako hipotetyczny przykład załóżmy, że masz 8-rdzeniowy procesor z C1-C8.
Gdy tak się stanie, wszystkie z nich stają się aktywne przez pewien czas, a następnie system zaparkuje je w następujący sposób:
Ale robiąc to, istnieje spora ilość narzutu związanego z opróżnianiem wszystkich danych z pamięci podręcznej L1-L3, aby tak się stało, aby dziwne błędy nie zdarzały się programom, które zostały usunięte z potoku procesora.
Prawdopodobnie jest to oficjalna nazwa, ale lubię to tłumaczyć jako bicie procesora. Zasadniczo procesory spędzają więcej czasu na wykonywaniu pracochłonnego przenoszenia danych wewnątrz, niż na przetwarzaniu żądań pracy.
Jeśli masz jakąkolwiek aplikację, która wymaga niewielkich opóźnień w żądaniach, musisz wyłączyć ustawienia zrównoważonej mocy. Jeśli nie masz pewności, czy jest to problem, wykonaj następujące czynności:
Jeśli zobaczysz, że któryś z nich zaparkował, zauważysz, że połowa z nich jest zaparkowana w danym momencie, wszystkie odpalą, a następnie druga połowa zostanie zaparkowana. Zmienia się naprzód i wstecz. Tak więc procesory systemowe są wstrząsające.
Maszyny wirtualne: ten problem jest jeszcze poważniejszy, gdy używasz maszyny wirtualnej, ponieważ istnieje dodatkowy narzut hiperwizora. Ogólnie rzecz biorąc, aby maszyna wirtualna mogła działać, sprzęt musi mieć wolne miejsce na czas dla każdego z rdzeni w każdym przedziale czasu.
Jeśli masz 16-rdzeniowy element sprzętowy, możesz uruchamiać maszyny wirtualne przy użyciu więcej niż 16 rdzeni ogółem, ale dla każdego przedziału czasu, tylko do 16 wirtualnych procesorów będzie kwalifikowało się do tego przedziału czasu, a hiperwizor musi pasować do wszystkich rdzeni maszyny wirtualnej w te czasy. Nie można go rozłożyć na wiele odcinków czasu. (Szczelina czasowa jest zasadniczo zestawem cykli procesora X. Może to być 1000 lub 100 000 cykli)
Przykład: 16-rdzeniowy sprzęt z 8 maszynami wirtualnymi. 6 ma 4 wirtualny procesor (4C), a 2 ma 8 wirtualnych procesorów (8C).
Timeslice 1: 4x4C Timeslice 2: 2x8C Timeslice 3: 2x4C + 1x8C Timeslice 4: 1x8C + 2x4C
To, czego nie może zrobić hiperwizor, to podzielenie połowy przydziału dla szczeliny czasowej na pierwsze 4 procesory 8 maszyny wirtualnej vCPU, a następnie na następnej szczelinie czasowej oddaj resztę pozostałym 4 vCPU tej maszyny wirtualnej. To wszystko albo nic w krótkim czasie.
Jeśli korzystasz z Hyper-V Microsoftu, ustawienia kontroli mocy można włączyć w systemie operacyjnym hosta, co oznacza, że będzie się ono rozprzestrzeniać w systemach klienckich, a tym samym wpłynie na nie.
Gdy zobaczysz, jak to działa, łatwo jest zobaczyć, jak korzystanie z ustawień zrównoważonej kontroli mocy powoduje problemy z wydajnością i powolne działanie serwerów. Jednym z podstawowych problemów jest to, że przychodzące żądanie musi poczekać na zakończenie procesu parkowania / rozpakowywania procesora, zanim serwer będzie w stanie odpowiedzieć na przychodzące żądanie, niezależnie od tego, czy jest to zapytanie bazy danych, żądanie serwera WWW lub cokolwiek innego .
Czasami system zaparkuje lub odparkuje procesory w środku żądania. W takich przypadkach żądanie zostanie uruchomione w potoku procesora, zostanie z niego zrzucone, a następnie inny rdzeń procesora odbierze stamtąd proces. Jeśli jest to wystarczająco duże żądanie, może się to zdarzyć kilka razy w trakcie żądania, zmieniając, co powinno być 5-sekundowe zapytanie do bazy danych, na 15-sekundowe zapytanie do bazy danych.
Największą rzeczą, którą zobaczysz przy korzystaniu ze zrównoważonej mocy, jest to, że systemy będą reagować wolniej, odpowiadając na prawie każde Twoje zapytanie.
źródło