Benchmarki dla serwerów Linux: wybór otwartych narzędzi

Nadal mówimy o narzędziach do oceny wydajności procesora na komputerach z systemem Linux. Dziś w materiale: temci, uarch-bench, likwid, perf-tools i llvm-mca.

Więcej benchmarków:

Benchmarki dla serwerów Linux: wybór otwartych narzędzi
Фото - Lukas Błażek — Rozpryskiwanie

temci

Jest to narzędzie służące do szacowania czasu wykonania dwóch programów. Zasadniczo pozwala porównać czas wykonania dwóch aplikacji. Autorem narzędzia był student z Niemiec Johannes Bechberger, który opracował je w ramach swojej pracy licencjackiej w 2016 roku. Dzisiejsze narzędzie dystrybuowane przez licencjonowane w ramach Powszechnej Licencji Publicznej GNU.

Johannes chciał stworzyć narzędzie, które pozwoliłoby mu zmierzyć wydajność systemu komputerowego w kontrolowanym środowisku. Dlatego jedną z głównych cech temci jest możliwość skonfigurowania środowiska testowego. Na przykład, można: zmień ustawienia menedżera częstotliwości procesora, wyłącz Hyper Threading oraz pamięci podręczne L1 i L2, wyłącz tryb turbo na procesorach Intel itp. Do testów porównawczych temci używa narzędzi czas, perf_stat и przebranie.

Tak wygląda narzędzie w pierwszym przypadku:

# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times                [####################################]  100%
Report for single runs
sleep 0.1            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      100.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1800k, deviation = 3.86455%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

sleep 0.2            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      200.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1968k, deviation = 3.82530%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

Na podstawie wyników benchmarkingu system generuje wygodny raport z diagramami, tabelami i wykresami, co odróżnia temci od podobnych rozwiązań.

Wśród wad temci wyróżnia się „młodość”. Z tego powodu on nie wszystko jest obsługiwane konfiguracji sprzętu i oprogramowania. Na przykład trudno jest uruchomić system na macOS, a niektóre funkcje nie są dostępne w systemie opartym na ARM. W przyszłości sytuacja może się zmienić, gdyż autor aktywnie rozwija projekt, a liczba gwiazdek na GitHubie stopniowo rośnie – jeszcze nie tak dawno temci omówione w komentarzach w Hacker News.

ławka uarch

Narzędzie do oceny wydajności funkcji procesora niskiego poziomu, opracowane przez inżyniera Travisa Downsa (Travisa Downsa). Ostatnio udziela się na blogu Wydajność ma znaczenie na GitHub Pages, gdzie jest mowa o narzędziach do testów porównawczych i innych powiązanych rzeczach. Ogólnie rzecz biorąc, uarch-bench dopiero zaczyna zyskiwać na popularności, ale jest już dość powszechny wspomniane mieszkańców Hacker News w wątkach tematycznych jako podstawowe narzędzie do testów porównawczych.

Uarch-bench pozwala ocenić wydajność pamięci, prędkość równoległego ładowania danych i pracę czyszczenia Rejestry YMM. Można zobaczyć jak wyglądają wyniki benchmarkingu wygenerowane przez program w oficjalnym repozytorium na dole strony.

Warto dodać, że uarch-bench, podobnie jak temci, rozłącza się Funkcja Intel Turbo Boost (automatycznie zwiększa taktowanie procesora pod obciążeniem), dzięki czemu wyniki testów są spójne.

Na razie projekt jest we wczesnej fazie rozwoju, więc uarch-bench nie posiada szczegółowej dokumentacji, a jego działanie może zawierać błędy - np. znane są trudności wraz z premierą na Ryzen. Obsługiwane są także tylko testy porównawcze dla architektur x86. Autor obiecuje dodać więcej funkcjonalności w przyszłości i zaprasza do przyłączenia się do rozwoju.

płyn

Jest to zestaw narzędzi do oceny wydajności maszyn Linux z procesorami Intel, AMD i ARMv8. Został stworzony pod patronatem niemieckiego Federalnego Ministerstwa Edukacji i Badań w 2017 roku i udostępniony jako open source.

Wśród narzędzi likwid wyróżnić możemy likwid-powermeter, który wyświetla informacje z rejestrów RAPL o poborze mocy przez system, a także likwid-setFrequency, który pozwala kontrolować częstotliwość procesora. Możesz zobaczyć pełną listę znajdź w repozytorium.

Z narzędzia korzystają inżynierowie zajmujący się badaniami HPC. Na przykład z likwid działa grupa specjalistów z Regionalnego Centrum Obliczeniowego Uniwersytetu Erlangen-Norymberga (RRZE) w Niemczech. Bierze również czynny udział w rozwoju tego zestawu narzędzi.

Benchmarki dla serwerów Linux: wybór otwartych narzędzi
Фото - Clema Onojeghuo — Rozpryskiwanie

narzędzia perf

To narzędzie do analizy wydajności serwerów Linux wprowadzono Brendana Gregga. Jest jednym z deweloperów DTrace — dynamiczna platforma śledzenia do debugowania aplikacji w czasie rzeczywistym.

perf-tools opiera się na podsystemach jądra perf_events i ftrace. Ich narzędzia pozwalają analizować opóźnienia we/wy (iosnoop), śledzić argumenty wywołań systemowych (unccount, funcslower, funcgraph i functrace) oraz zbierać statystyki dotyczące „trafień” w pamięci podręcznej plików (cachestat). W tym drugim przypadku polecenie wygląda następująco:

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

Wokół instrumentu utworzyła się dość duża społeczność (prawie 6 tysięcy gwiazd na GitHubie). Istnieją na przykład firmy, które aktywnie korzystają z narzędzi perf Netflix. Narzędzie jest jednak dalej rozwijane i modyfikowane (choć ostatnio aktualizacje pojawiają się dość rzadko). Dlatego mogą wystąpić błędy w jego działaniu - autor pisze, że czasami perf-tools powoduje panikę jądra.

llvm-mca

Narzędzie, które przewiduje, ile zasobów obliczeniowych będzie wymagał kod maszynowy na różnych procesorach. Ona ocenia Instrukcje na cykl (IPC) oraz obciążenie sprzętu generowane przez konkretną aplikację.

W ramach projektu w 2018 roku zaprezentowano llvm-mca LLVM, która opracowuje uniwersalny system analizy, transformacji i optymalizacji programów. Wiadomo, że twórcy llvm-mca zainspirowali się rozwiązaniem do analizy wydajności oprogramowania IACA firmy Intel i starał się stworzyć alternatywę. Według użytkowników wyniki narzędzia (ich układ i ilość) naprawdę przypominają IACA - przykład można znaleźć tutaj. Jednak llvm-mca akceptuje tylko Składnia AT&T, więc najprawdopodobniej będziesz musiał użyć konwerterów, aby z nim pracować.

O czym piszemy na naszych blogach i portalach społecznościowych:

Benchmarki dla serwerów Linux: wybór otwartych narzędzi "Mata. Model Wall Street”, czyli jak optymalizować koszty chmury

Benchmarki dla serwerów Linux: wybór otwartych narzędzi Jak zabezpieczyć system Linux: 10 wskazówek
Benchmarki dla serwerów Linux: wybór otwartych narzędzi Minimalizowanie ryzyka: jak nie stracić danych

Benchmarki dla serwerów Linux: wybór otwartych narzędzi Książki dla tych, którzy już zajmują się administracją systemami lub dopiero planują zacząć
Benchmarki dla serwerów Linux: wybór otwartych narzędzi Wybór: pięć książek i jeden kurs o sieciach

Benchmarki dla serwerów Linux: wybór otwartych narzędziW 1cloud.ru oferujemy bezpłatną usługę „Hosting DNS" Możesz zarządzać rekordami DNS na jednym koncie osobistym.

Źródło: www.habr.com

Dodaj komentarz