Wskaźnik IPC procesora określa liczbę wykonanych instrukcji na cykl taktowania, a częstotliwość taktowania – liczbę cykli na sekundę. Żaden z tych dwóch wskaźników osobno pokazuje, jak szybko usługa hostingowa wykonuje Twoją aplikację: wskaźnik IPC zależy od programu i jego danych, natomiast rzeczywista częstotliwość taktowania pod obciążeniem może odbiegać od specyfikacji. Przy wyborze kluczowe znaczenie mają również równoległość i dostępny czas procesora. Porównywalny test aplikacji uwzględniający przepustowość i czasy odpowiedzi stanowi bardziej wiarygodną podstawę niż pojedyncza wartość GHz.
IPC procesora: liczba instrukcji na takt
IPC procesora oznacza „Instructions per Cycle”, czyli instrukcje na cykl taktowy. W przypadku określonego zakresu pomiarowego liczba wykonanych instrukcji maszynowych jest zazwyczaj dzielona przez liczbę cykli procesora zliczonych w tym samym zakresie. IPC równe 2 oznacza w tym kontekście średnio dwie wykonane instrukcje na każdy zliczony cykl.
Wartość ta wynosi Cechy konstrukcyjne, a nie stały wskaźnik dla wszystkich zadań procesora. Ten sam system może osiągnąć inny wskaźnik IPC podczas obliczeń z wykorzystaniem łatwo dostępnych danych niż podczas zapytania do bazy danych, które często musi czekać na dane z pamięci głównej. Również konkretny zestaw danych i rozpatrywany fragment programu mają wpływ na wynik.
Pamięć podręczna przechowuje często używane dane w pobliżu procesora. Jeśli rdzeń musi zamiast tego czekać na wolniejszy dostęp do pamięci, jednostki wykonawcze mogą czasami pozostawać niewykorzystane. Podobnie zależności między instrukcjami oraz rozgałęzienia w przebiegu programu wpływają na to, ile zadań można wykonać jednocześnie. Niski wskaźnik IPC stanowi zatem powód do dalszej analizy, ale nie jest jeszcze jednoznaczną diagnozą.
Instrukcja maszynowa nie jest ponadto znormalizowaną jednostką określającą zakończone żądanie sieciowe. Kompilator, zestaw instrukcji i wektoryzacja mogą powodować, że różne programy wykonujące to samo zadanie potrzebują różnej liczby instrukcji. Wyższy wskaźnik IPC sam w sobie nie świadczy zatem ani o krótszym czasie odpowiedzi, ani o większej liczbie żądań na sekundę.
Dla porównania kluczowe znaczenie ma to, jakie zastosowanie i jaki zakres pomiarowy kryją się za daną wartością. Wartość IPC bez tych informacji nie pozwala stwierdzić, czy systemy w ogóle wykonują tę samą pracę. Więcej podstawowych informacji na temat współdziałania taktowania, rdzeni i hierarchii pamięci znajdziesz w artykule poświęconym Architektura procesora w hostingu.
Zrozumieć częstotliwość taktowania serwera i tryb Boost
Częstotliwość taktowania określa, ile cykli procesor wykonuje na sekundę. Jeden gigaherc, w skrócie GHz, odpowiada miliardowi cykli na sekundę. Sama ta wartość nie mówi jednak, ile instrukcji program wykonuje w tych cyklach ani ile użytecznej pracy dzięki temu wykonuje.
W arkuszach danych często podaje się Częstotliwość podstawowa oraz maksymalne przyspieszenie. Częstotliwość bazowa stanowi wartość znamionową; przyspieszenie oznacza wyższą częstotliwość możliwą do osiągnięcia w odpowiednich warunkach. Obie te wartości nie zastępują obserwacji faktycznie osiągniętej częstotliwości taktowej podczas konkretnego zastosowania i przy odpowiednim obciążeniu.
Przykładem jest procesor AMD EPYC 9655: w przypadku tego modelu firma AMD podaje 96 rdzeni, 192 wątki, częstotliwość bazową 2,6 GHz oraz maksymalną częstotliwość w trybie Boost wynoszącą do 4,5 GHz. Wartości te opisują wyposażenie i specyfikację częstotliwości procesora. Nie stanowią one ani zmierzonej wydajności IPC, ani dowodu na określoną przepustowość hostingu.
W przypadku serii EPYC 9005 firma AMD definiuje maksymalne wzmocnienie jako najwyższą częstotliwość, jaką pojedyncze jądro może osiągnąć w normalnych warunkach pracy serwera. Zatem częstotliwość do 4,5 GHz w modelu 9655 nie oznacza, że wszystkie 96 rdzeni utrzyma tę częstotliwość w sposób ciągły. Ograniczenia dotyczące mocy i temperatury wpływają na zachowanie procesora pod obciążeniem.
W przypadku krótkiego, pojedynczego zadania istotne może być chwilowo wyższe taktowanie; natomiast w przypadku długotrwałego obciążenia równoległego interesujące jest to, jaką moc system zapewnia w całym okresie działania. Inne modele z tej serii mają inne częstotliwości i liczbę rdzeni. Porównanie oparte wyłącznie na największej wartości w GHz pomijałoby te różnice oraz konkretne zastosowanie.
Jądra, wątki i wirtualne procesory
W uproszczeniu proces to uruchomiona instancja programu. W jej ramach jeden lub więcej wątków wykonuje instrukcje. Fizyczne jądro procesora dysponuje sprzętem umożliwiającym wykonywanie takich zadań; systemy operacyjne, w zależności od procesora, rozpoznają jeden lub więcej logicznych wątków procesora na każde jądro. Logiczne wątki tego samego jądra współdzielą przy tym część jego sprzętu.
Zadanie zawierające fragment o silnym charakterze sekwencyjnym nie pozwala na dowolne rozdzielenie tej części na wiele rdzeni. W tym przypadku istotne jest, jak szybko wątek wykonujący zadanie realizuje konkretną pracę. Natomiast niezależne żądania internetowe często można przetwarzać równolegle: wówczas dodatkowe dostępne rdzenie mogą zwiększyć ogólną przepustowość, o ile nie ograniczają tego inne zasoby.
Liczba wątków logicznych nie jest tożsama z liczbą niezależnych rdzeni fizycznych. Na przykład procesor EPYC 9655 ma według producenta 96 rdzeni fizycznych i 192 wątki. Liczba 192 wątków nie oznacza ani podwojenia wydajności w porównaniu z 96 wątkami, ani określonej przepustowości dla serwera WWW.
W przypadku serwera wirtualnego dostawca udostępnia systemowi operacyjnemu gościa vCPU gotowe. vCPU niekoniecznie oznacza fizyczne jądro do wyłącznego użytku: jego przypisanie do sprzętu hosta może się różnić w zależności od oferty, a czas obliczeniowy może być dzielony z innymi gośćmi lub ograniczony przez limity.
Pytanie przed dokonaniem wyboru dotyczące konkretnych gwarancji zasobów: Czy czas procesora jest gwarantowany, czy też jest dzielony? Czy istnieją stałe ograniczenia wydajności i w jaki sposób przydzielane są procesory vCPU? Duża liczba procesorów vCPU pomaga aplikacji działającej równolegle tylko w takim zakresie, w jakim faktycznie dostępny jest wystarczający czas obliczeniowy; w przypadku sekcji szeregowej nie zastępuje ona szybkiego wykonywania w jednym wątku.
Wspólne obliczanie IPC i taktowania
IPC i częstotliwość taktowania opisują różne aspekty wydajności procesora. W odpowiednio wyznaczonym zakresie pomiarowym można w przybliżeniu połączyć ich wpływ: instrukcje na sekundę odpowiadają wartości IPC pomnożonej przez rzeczywistą liczbę cykli procesora na sekundę. Wskaźnik IPC odnosi się przy tym do liczby wykonanych instrukcji i liczby zliczonych cykli w tym samym przedziale.
Przykład obliczeniowy, nie jest to pomiar: Przy założeniu stałej wartości 2,0 instrukcji na cykl i częstotliwości 3,0 GHz, obliczeniowo otrzymujemy 6,0 miliardów instrukcji na sekundę. Również 1,5 IPC przy częstotliwości 4,0 GHz daje 6,0 miliardów. W tym przykładzie wyższa częstotliwość taktowania równoważy więc w obliczeniach niższy wskaźnik IPC.
Jednak ta sama liczba instrukcji nie oznacza, że oba systemy przetwarzają taką samą liczbę zapytań internetowych. W zależności od kompilatora, zestawu instrukcji i użytych poleceń programy mogą potrzebować różnej liczby instrukcji do wykonania tego samego zadania. Instrukcja nie jest zatem jednolitą miarą wykonanej pracy aplikacji.
Również czas odpowiedzi strony internetowej nie wynika bezpośrednio z tego wskaźnika. Wątek może czekać na dane z nośnika lub na odpowiedź sieciową; w tym czasie jego szybkość wykonywania instrukcji nie wyjaśnia całego upływającego czasu. W przypadku maszyny wirtualnej dochodzi do tego fakt, że niekoniecznie otrzymuje ona czas procesora w każdym momencie.
Aby móc dokonać porównania, należy zatem ustalić, jaki kod i jaki okres zostały uwzględnione. Wzór pomaga sklasyfikować aktywne wykonanie; do podjęcia decyzji dotyczącej hostingu konieczne są dodatkowo zakończone zadania oraz ich czasy odpowiedzi w ramach porównywalnego profilu zapytań.
Klasyfikacja arkusza danych i wskaźników
Arkusz danych technicznych zawiera przydatne wskazówki dotyczące wyboru procesora do hostingu. Dane te odpowiadają jednak na różne pytania: wskaźnik IPC opisuje zachowanie w danym zakresie pomiarowym, natomiast informacje o częstotliwości i liczbie rdzeni określają właściwości danego modelu procesora. Dopiero w połączeniu z konkretną aplikacją stają się one użytecznymi kryteriami porównawczymi.
| Kluczowa liczba | Znaczenie | Korzyści | Najważniejsza granica |
|---|---|---|---|
| IPC | Liczba zakończonych instrukcji w każdym zliczonym cyklu | Umieszcza wykonanie w ramach mierzonego programu | Zależy to od programu i danych; instrukcje nie stanowią znormalizowanej jednostki pracy |
| Częstotliwość podstawowa | Informacja producenta dotycząca częstotliwości podstawowej tego modelu | Ułatwia klasyfikację określonego taktu | Brak informacji o liczbie taktów osiągniętych w każdym zadaniu |
| Maksymalne wzmocnienie | Najwyższa określona częstotliwość doładowania | Pokazuje górny potencjał częstotliwości | W przypadku procesora EPYC 9005 wartość ta odnosi się do pojedynczego rdzenia w normalnych warunkach pracy i nie jest to częstotliwość ciągła dla wszystkich rdzeni |
| liczba podstawowa | Liczba fizycznych rdzeni procesora | Informacja o dostępnej równoległej mocy obliczeniowej | Samo to nie jest miarą przepustowości aplikacji |
| Wątki | Liczba logicznych wątków procesora obsługiwanych jednocześnie | Pomaga uporządkować logiczne możliwości realizacji | Wątek logiczny nie odpowiada dodatkowemu rdzeniowi fizycznemu |
Procesor EPYC 9655 pokazuje, jak te dane się ze sobą wiążą: według AMD model ten posiada 96 rdzeni i 192 wątki, częstotliwość bazową 2,6 GHz oraz maksymalną częstotliwość w trybie Boost wynoszącą do 4,5 GHz. Częstotliwość 4,5 GHz nie jest gwarantowaną częstotliwością dla wszystkich rdzeni przy ciągłym obciążeniu ani zmierzoną przepustowością hostingu.
Ranking oparty na maksymalnej częstotliwości w GHz nie uwzględniałby tego, ile pracy różne procesory wykonują w jednym cyklu i w ramach jednego zadania. Z kolei ranking oparty na liczbie rdzeni pomija fakt, że nie każda aplikacja potrafi równie dobrze rozdzielić swoją pracę równolegle. Oba wskaźniki stanowią punkty wyjścia, a nie ostateczne oceny wydajności.
Dlatego przy ofertach zwracaj uwagę na Wariant modelu oraz na tym, jakie zasoby są faktycznie dostępne. Aby uzyskać miarodajne porównanie, potrzebujesz ponadto odpowiedniego profilu obciążenia oraz wyników uzyskanych przy użyciu porównywalnego oprogramowania i konfiguracji. Nie należy mylić specyfikacji poszczególnych modeli z wartością maksymalną przyjętą dla całej rodziny produktów.
Wybór procesora hostingowego na podstawie profilu obciążenia
To, który procesor nadaje się do hostingu, zależy od tego, jakie zadania ma wykonywać serwer. Długotrwałe pojedyncze zadanie stawia inne wymagania niż wiele niezależnych żądań internetowych. Tabela przekłada typowe profile obciążenia na kluczowy wskaźnik oraz pytanie, na które należy odpowiedzieć przed dokonaniem wyboru.
| profil obciążenia | Główna wielkość pomiarowa | Pytanie przed zakupem |
|---|---|---|
| Pojedyncze zadanie wymagające dużej mocy obliczeniowej procesora | Czas trwania konkretnego zadania | Jak szybko działa dany odcinek szeregowy przy stałym obciążeniu? |
| Równoległe zapytania internetowe | Liczba zapytań na sekundę i rozkład czasów odpowiedzi przy określonym stopniu równoległości | Jaką przepustowość zapewniają dostępne zasoby przy akceptowalnym czasie odpowiedzi? |
| Baza danych wymagająca dużej pamięci | Czas trwania i czasy odpowiedzi reprezentatywnych zapytań | Czy wyposażenie pamięci i konfiguracja są zgodne z zestawem danych roboczych? |
| VPS | Przepustowość aplikacji i czasy odpowiedzi przy gwarantowanych zasobach | W jaki sposób przydzielane są procesory vCPU i jakie obowiązują limity lub podziały mocy obliczeniowej procesora? |
W przypadku pojedynczego zadania wydajność wątku wykonującego ma szczególne znaczenie, gdy znaczna część pracy przebiega szeregowo. Większa liczba rdzeni niekoniecznie skraca czas trwania tej części. Krótki maksymalny wzrost wydajności również nie stanowi wystarczającego dowodu w przypadku zadania o długim czasie trwania: decydujące znaczenie ma zmierzony czas jego wykonania w przewidzianych warunkach.
Z drugiej strony wiele niezależnych zapytań można przetwarzać równolegle. W tym przypadku, oprócz wydajności na wątek, liczy się to, ile zasobów jest jednocześnie dostępnych oraz jak zmieniają się czasy odpowiedzi wraz ze wzrostem obciążenia. Suma nominalnych wartości GHz nie zastępuje porównania Całkowita przepustowość przy takim samym stopniu równoległości.
W przypadku bazy danych zawierającej duży zbiór danych roboczych operacje dostępu do pamięci mogą spowalniać działanie, jeśli potrzebne dane nie są skutecznie pobierane z pamięci podręcznej. Niski wskaźnik IPC może stanowić powód do dalszej analizy, ale sam w sobie nie świadczy o występowaniu wąskiego gardła pamięci. Dlatego przed wymianą procesora sprawdź również zapytania, zasoby danych i konfigurację pamięci.
W przypadku VPS dodatkowo... Zobowiązanie dotyczące zasobów Ważne: vCPU niekoniecznie oznacza wyłączny rdzeń fizyczny. Należy zapytać o przydział, ewentualne ograniczenia procesora oraz współdzielenie z innymi gośćmi. Dopiero na podstawie tych informacji można sensownie porównać test aplikacji z ofertą na serwerze dedykowanym.
Zaplanować porównywalne testy użytkowe
Miary porównawcze mają sens dopiero w kontekście konkretnej aplikacji, a nie w oparciu o pojedynczy wynik procesora. Dla obu ofert hostingowych należy ustawić tę samą wersję oprogramowania, ten sam zbiór danych i tę samą konfigurację. SPEC określa własną aplikację działającą na własnej infrastrukturze jako idealny punkt odniesienia przy wyborze produktu.
Następnie zdefiniuj Profil zapytania, który jak najlepiej odzwierciedla późniejsze wykorzystanie: na przykład, które strony lub punkty końcowe API są wywoływane oraz ile żądań napływa jednocześnie. Utrzymuj porównywalny poziom równoległości i limitów zasobów między poszczególnymi przebiegami. Jeśli oferta określa inne limity, należy je wyraźnie udokumentować, zamiast przypisywać różnicę wyłącznie procesorowi.
Zaplanuj fazę rozgrzewki, aby na przykład aplikacja została uruchomiona, a pamięci podręczne mogły się zapełnić. Następnie kilka wystarczająco długich cykli pomoże odróżnić krótkotrwałe wahania od powtarzających się różnic. Odnotuj również, czy podczas pomiaru na systemach wykonywane były inne zadania.
Oprócz przepustowości należy zarejestrować Rozkład czasów odpowiedzi oraz błędy. Wyższa średnia liczby zrealizowanych zapytań na sekundę sama w sobie nie ma większego znaczenia, jeśli poszczególne zapytania czekają bardzo długo lub częściej kończą się niepowodzeniem. Dlatego warto porównać również wysokie percentyle czasu odpowiedzi przy tej samej równoległości.
Dodatkową wskazówką mogą być opublikowane wyniki testów SPEC-CPU2017. SPECspeed mierzy czas potrzebny do wykonania zadań, a SPECrate – przepustowość; te dwa wskaźniki nie są bezpośrednio zamienne. Należy porównywać wyniki tego samego wskaźnika, biorąc pod uwagę konfigurację systemu i oprogramowanie. Pakiet CPU-Suite nie odzwierciedla sieci i operacji wejścia/wyjścia (I/O) pełnej usługi hostingowej.
Sprawdzić IPC i częstotliwość podczas pracy
Aby stworzyć własne środowisko testowe w systemie Linux, możesz zarejestrować za pomocą narzędzia perf zakończone instrukcje i cykle istniejącego, przetestowanego programu. W poniższym przykładzie testprogramm Znak zastępczy: zastąp go swoim programem testowym i, w razie potrzeby, jego argumentami. Polecenie to jest propozycją pomiaru, a nie już przeprowadzonym testem.
Nawiasy klamrowe łączą te wydarzenia w jedną Grupa liczników razem. Powinny być rejestrowane jednocześnie, co może ograniczyć błędy wynikające z multipleksowania z opóźnieniem. Aby uzyskać wartość IPC dla tego zakresu pomiarowego, należy podzielić liczbę zliczonych instrukcji przez liczbę zliczonych cykli; perf może również wyświetlić tę wartość bezpośrednio.
To, czy zdarzenia są dostępne i czy można je odczytać, zależy od sprzętu, jądra systemu, uprawnień oraz, w stosownych przypadkach, środowiska wirtualizacji. Grupa zdarzeń, która jest niedostępna lub której nie da się zsumować, nie zapewnia wiarygodnego porównania. Nie należy zmieniać ustawień zabezpieczeń wyłącznie na potrzeby tego przykładu.
Również wskazanie częstotliwości wymaga kontekstu: scaling_cur_freq zgodnie z dokumentacją jądra w wielu przypadkach odpowiada ostatniemu stanowi zażądanym przez sterownik, a niekoniecznie faktycznie osiągniętej częstotliwości taktowania sprzętu. Ta wartość, która nie jest dostępna wszędzie, cpuinfo_cur_freq ma natomiast odzwierciedlać aktualną częstotliwość określoną na poziomie sprzętowym. Więcej na temat Regulator wydajności procesora na serwerach hostingowych wyjaśnia sposób sterowania skalowaniem częstotliwości.
Niski wskaźnik IPC stanowi wskazówkę do przeprowadzenia dalszych badań, ale nie jest ostateczną diagnozą. Dostęp do pamięci może spowalniać wykonywanie programu; należy również sprawdzić, która część programu została zmierzona oraz czy występują inne czynniki wpływające na wynik. Dlatego też należy porównać wartość licznika z zachowaniem aplikacji i sposobem, w jaki uzyskuje ona dostęp do danych.
Rozpoznanie wąskiego gardła i podjęcie decyzji o modernizacji
Zacznij od konkretnego objawu: czy pod obciążeniem zapytania działają wolno, czy wzrasta liczba błędów, czy też wykonanie pojedynczego zadania trwa zbyt długo? Zanotuj, kiedy pojawia się problem i jakie zadania są w tym samym czasie wykonywane. Dopiero wtedy można sprawdzić, czy większa moc procesora w ogóle może skrócić to opóźnienie.
Najpierw sprawdź ilość dostępnej i wykorzystanej czas procesora. Zadanie wymagające długotrwałej intensywnej obliczeniowo pracy może zyskać na szybszym wykonaniu lub większym stopniu równoległości. Samo wysokie obciążenie nie wyjaśnia jednak ani tego, który kod je powoduje, ani tego, czy czas odpowiedzi wynika przede wszystkim właśnie z tego. Dlatego należy zestawić te ustalenia z przepustowością i czasami odpowiedzi dla tej samej fazy obciążenia.
Następnie należy zbadać zapotrzebowanie na pamięć i dostęp do danych. Jeśli baza danych musi często uzyskiwać dostęp do danych znajdujących się poza pamięcią podręczną procesora, może to oznaczać, że czeka na pamięć; niski wskaźnik IPC może na to wskazywać, ale nie stanowi dowodu przyczyny. Również niedobór pamięci operacyjnej, operacje na nośnikach danych lub powolne usługi zewnętrzne mogą wpływać na obserwowane opóźnienia.
W przypadku serwera VPS należy Zobowiązanie dotyczące zasobów W kwestii diagnozy: należy zapytać o przydział procesorów vCPU, ewentualne ograniczenia mocy obliczeniowej oraz współdzielenie zasobów z innymi gośćmi. Serwer dedykowany oferuje inny sposób przydziału zasobów fizycznych, jednak również w tym przypadku o wyniku decydują aplikacja, konfiguracja i profil obciążenia. W miarę możliwości należy porównać obie oferty, korzystając z tego samego testu aplikacji.
Rozważ modernizację procesora, jeśli pomiary wskazują na wąskie gardło po stronie procesora, a nowy plan taryfowy faktycznie zapewnia wymagany czas obliczeniowy. Jeśli opóźnienie wynika głównie z pamięci, nośnika danych lub usługi zewnętrznej, sensowniejsze jest przeprowadzenie dalszej analizy w tym obszarze. Udokumentuj stan początkowy, aby później móc porównać efekty wprowadzonych zmian.
Nie należy traktować wartości maksymalnego przyspieszenia jako gwarantowanej częstotliwości pracy wszystkich rdzeni w trybie ciągłym, a wartości IPC jako uniwersalnej cechy procesora. Podobnie pojedyncza wartość obciążenia nie wystarcza do pełnej diagnozy wąskiego gardła. Decyzja powinna opierać się na konkretnym zadaniu i faktycznie dostępnych zasobach, a nie na pojedynczym wskaźniku szczytowym.
Źródła i aktualny stan wiedzy
Stan badań:
Stan badań na dzień 4 listopada 2026 r.; przykładowa specyfikacja techniczna dotyczy procesora AMD EPYC 9655. Brak wykresu, ponieważ nie ma porównywalnych wyników pomiarów.
https://www.intel.com/pressroom/kits/core2duo/pdf/ICM_whitepaper.pdf
https://www.amd.com/content/dam/amd/en/documents/epyc-business-docs/datasheets/amd-epyc-9005-series-processor-datasheet.pdf
https://www.spec.org/cpu2017/Docs/overview.html
https://www.man7.org/linux/man-pages/man2/perf_event_open.2.html
https://www.man7.org/linux/man-pages/man1/perf-report.1.html
https://www.amd.com/en/products/processors/server/epyc/9005-series/amd-epyc-9655.html
https://www.man7.org/linux/man-pages/man1/perf-stat.1.html
https://www.man7.org/linux/man-pages/man1/perf-list.1.html
https://docs.kernel.org/admin-guide/pm/cpufreq.html




