Zalecenia dotyczące testowania wydajnościowego

Dotyczy tego zalecenia listy kontrolnej wydajności platformy Azure Well-Architected Framework:

PE:06 Testowanie wydajności. Przeprowadzaj regularne testy w środowisku, które jest zgodne ze środowiskiem produkcyjnym. Porównaj wyniki z celami wydajności i testem porównawczym wydajności.

W tym przewodniku opisano zalecenia dotyczące testowania. Testowanie wydajnościowe pomaga ocenić funkcjonalność obciążenia w różnych scenariuszach. Obejmuje to testowanie czasu odpowiedzi obciążenia, przepływności, wykorzystania zasobów i stabilności, aby zapewnić, że obciążenie spełnia wymagania dotyczące wydajności.

Testowanie pomaga zapobiegać problemom z wydajnością. Pomaga to również zagwarantować, że obciążenie spełnia wymagania umów dotyczących poziomu usług. Bez testowania wydajności obciążenie może doświadczyć spadków wydajności, które są często możliwe do uniknięcia. Wydajność obciążenia może dryfować od celów wydajności i ustalonych punktów odniesienia.

Definicje

Okres Definicja
Testowanie chaosu Test wydajnościowy, który ma na celu przetestowanie odporności i stabilności systemu poprzez celowe wprowadzenie losowych i nieprzewidywalnych awarii lub zakłóceń.
Test obciążeniowy Test wydajnościowy, który mierzy wydajność systemu pod typowym i dużym obciążeniem.
Punkt odniesienia wydajności Zestaw metryk reprezentujący zachowanie obciążenia w normalnych warunkach zweryfikowanych przez testowanie.
Test warunków skrajnych Test wydajnościowy, który przeciąża system, dopóki nie ulegnie awarii.
Test syntetyczny Test wydajnościowy, który symuluje żądania użytkowników w aplikacji.

Kluczowe strategie projektowania

Testowanie wydajnościowe ułatwia zbieranie mierzalnych danych w obciążeniu. W przypadku wczesnego uruchamiania testów ułatwiają one również tworzenie obciążeń zgodnie z odpowiednimi specyfikacjami. Testy wydajności należy przeprowadzać tak szybko, jak to możliwe w cyklu życia tworzenia oprogramowania. Wczesne testowanie umożliwia przechwytywanie i rozwiązywanie problemów z wydajnością wcześniej podczas programowania. Jeśli kod produkcyjny nie jest gotowy, możesz użyć weryfikacji koncepcji.

Przygotowywanie testu

Przygotowywanie testów wydajnościowych odnosi się do konfigurowania i rozmieszczania zasobów, konfiguracji i scenariuszy testowych, które są potrzebne do skutecznego przeprowadzania testów wydajnościowych.

Definiowanie kryteriów akceptacji

Kryteria akceptacji określają wymagania dotyczące wydajności, które należy spełnić, aby obciążenie było uznawane za akceptowalne lub pomyślne. Zdefiniuj kryteria zgodne z celami wydajności.

Przejrzyj cele dotyczące wydajności. Cele wydajności definiują żądany poziom wydajności dla obciążenia. Przejrzyj cele wydajności ustanowione dla obciążenia. Cele wydajności to metryki, które mogą obejmować czas odpowiedzi, przepływność, wykorzystanie zasobów lub inne istotne wskaźniki wydajności. Na przykład możesz mieć docelowy czas odpowiedzi poniżej określonego progu, na przykład krótszy niż 2 sekundy.

Definiowanie kryteriów akceptacji. Przetłumacz cele wydajności na określone kryteria akceptacji, których można użyć do oceny wydajności obciążenia. Załóżmy na przykład, że docelowy cel wydajności dla czasu odpowiedzi wynosi 2 sekundy lub mniej. Kryterium akceptacji może być Średni czas odpowiedzi obciążenia powinien być krótszy niż 2 sekundy. Użyj tych kryteriów akceptacji, aby określić, czy obciążenie spełnia żądany poziom wydajności.

Podczas definiowania kryteriów akceptacji ważne jest, aby skoncentrować się na użytkownikach i ich oczekiwaniach. Kryteria akceptacji pomagają zagwarantować, że dostarczona praca spełnia wymagania i wymagania użytkownika. Należy pamiętać o następujących zagadnieniach dotyczących włączania perspektywy użytkownika do kryteriów akceptacji:

  • Wymagania użytkownika: Poznaj potrzeby i cele użytkownika dla obciążenia. Zastanów się, jak obciążenie powinno zostać wykonane, aby spełnić te wymagania.

  • Środowisko użytkownika: zdefiniuj kryteria akceptacji, które przechwytują żądane środowisko użytkownika. Uwzględnij czynniki, takie jak czas odpowiedzi, użyteczność, dostępność i ogólna satysfakcja.

  • Wymagania funkcjonalne: rozwiąż określone funkcje, które użytkownik spodziewa się zobaczyć w obciążeniu. Zdefiniuj kryteria akceptacji dotyczące tych wymagań funkcjonalnych, aby zapewnić ich spełnienie.

  • Przypadki użycia: rozważ różne scenariusze lub przypadki użycia, które może napotkać użytkownik. Zdefiniuj kryteria akceptacji na podstawie tych przypadków użycia, aby zweryfikować wydajność obciążenia w rzeczywistych sytuacjach.

Ustaw progi akceptacji. Określ progi w ramach kryteriów akceptacji, które wskazują, czy obciążenie spełnia cele wydajności. Te progi definiują akceptowalny zakres wydajności dla każdej metryki. Załóżmy na przykład, że kryterium akceptacji czasu odpowiedzi jest krótsze niż 2 sekundy. Próg można ustawić na 2,5 sekundy. Ten poziom wskazuje, że każdy czas odpowiedzi w ciągu 2,5 sekundy jest uznawany za problem z wydajnością.

Definiowanie kryteriów przekazywania. Ustal kryteria określania, czy obciążenie zakończyło się powodzeniem, czy niepowodzeniem testu wydajnościowego. Można zdefiniować przekazywanie jako spełniające wszystkie kryteria akceptacji lub osiągnięcie określonego procentu z nich.

Wybierz typ testu

Aby wybrać właściwy typ testu wydajnościowego, ważne jest, aby dopasować test do kryteriów akceptacji. Kryteria akceptacji definiują warunki, które należy spełnić, aby można było rozważyć wymaganie lub poprawkę usterek. Testy wydajnościowe powinny mieć na celu sprawdzenie, czy obciążenie spełnia te kryteria akceptacji i działa zgodnie z oczekiwaniami w określonych warunkach. Dopasowanie typu testu wydajnościowego do kryteriów akceptacji pomaga zagwarantować, że test koncentruje się na spełnieniu oczekiwań dotyczących wydajności zdefiniowanych kryteriów.

  • Omówienie kryteriów akceptacji. Przejrzyj kryteria akceptacji dotyczące wymagania lub poprawki błędów. Kryteria określają określone warunki i funkcje, które mają zostać spełnione.

  • Zidentyfikuj odpowiednie metryki wydajności. Na podstawie kryteriów akceptacji określ metryki wydajności, które mają kluczowe znaczenie dla osiągnięcia pożądanych wyników. Jeśli na przykład kryteria akceptacji koncentrują się na czasie odpowiedzi, priorytet testowania obciążenia może być odpowiedni.

  • Wybierz odpowiedni typ testu. Oceń dostępne typy testów i wybierz te, które najlepiej pasują do zidentyfikowanych metryk wydajności i kryteriów akceptacji.

Poniższa tabela zawiera przykładowe typy testów i ich przypadki użycia.

Typ testu Opis Przypadek użycia
Testowanie obciążeniowe Symulowanie realistycznych obciążeń użytkowników w celu mierzenia wydajności obciążenia w ramach oczekiwanych obciążeń szczytowych. Określa tolerancję obciążenia.
Testy warunków skrajnych Wypchnij obciążenie poza normalne limity, aby zidentyfikować punkty przerwania i zmierzyć jego zdolność do odzyskiwania. Określa odporność i niezawodność.
Testowanie moczenia (testowanie wytrzymałościowe) Uruchom obciążenie w ramach długotrwałych dużych obciążeń przez dłuższy czas, aby zidentyfikować spadek wydajności, przecieki pamięci lub problemy z zasobami. Ocenia stabilność i niezawodność w czasie.
Testowanie skokowe Symuluj nagłe wzrosty obciążenia użytkowników, aby ocenić, w jaki sposób obciążenie obsługuje nagłe zmiany zapotrzebowania. Mierzy możliwość skalowania i utrzymania wydajności w okresach szczytowych.
Testowanie zgodności Przetestuj wydajność obciążenia na różnych platformach, przeglądarkach lub urządzeniach. Pomaga zapewnić spójną wydajność w różnych środowiskach.

Określanie priorytetów wybranych typów testów na podstawie właściwości i wymagań obciążenia. Należy wziąć pod uwagę czynniki, takie jak krytyczne znaczenie metryk wydajności, oczekiwania użytkowników, priorytety biznesowe i znane problemy lub luki w zabezpieczeniach.

Wybieranie narzędzi do testowania

Wybierz odpowiednie narzędzia na podstawie typu testów wydajnościowych, które chcesz uruchomić. Ocena infrastruktury, zasobów i ograniczeń środowiska testowego. Wybierz narzędzia do testowania, które obsługują żądane typy testów i udostępniają niezbędne funkcje do monitorowania, pomiaru, analizy i raportowania.

Narzędzie do monitorowania wydajności aplikacji (APM) zapewnia szczegółowe informacje o aplikacjach i jest podstawowym narzędziem do testowania. Ułatwia śledzenie poszczególnych transakcji i mapowanie ich ścieżek za pośrednictwem różnych usług obciążeń. Po przetestowaniu należy użyć narzędzia APM do analizowania i porównywania danych testowych z punktem odniesienia wydajności.

Użyj narzędzi profilowania, aby zidentyfikować wąskie gardła wydajności w kodzie. Profilowanie pomaga identyfikować obszary kodu, które zużywają najwięcej zasobów i wymagają optymalizacji. Zapewnia wgląd w czas wykonywania i użycie pamięci różnych części kodu.

Poniższe kroki mogą pomóc w wybraniu odpowiednich narzędzi do testowania:

  • Identyfikowanie wymagań dotyczących testowania. Zacznij od zrozumienia konkretnych wymagań dotyczących testowania wydajnościowego. Weź pod uwagę różne czynniki:

    • Typ obciążenia
    • Metryki wydajności do mierzenia, takie jak czas odpowiedzi i przepływność
    • Złożoność architektury obciążenia
    • Środowisko testowe, takie jak środowisko oparte na chmurze, lokalne lub hybrydowe
  • Narzędzia do testowania badań. Przeprowadź badania, aby zidentyfikować narzędzia do testowania wydajności, które są zgodne z wymaganiami. Rozważmy narzędzia komercyjne i open source, które są dostępne na rynku. Poszukaj narzędzi, które obsługują żądane typy testów wydajnościowych, takich jak testy obciążeniowe lub testy przeciążeniowe, i które udostępniają funkcje pomiaru metryk wydajności.

  • Ocena funkcji narzędzi. Oceń funkcje zapewniane przez każde narzędzie do testowania. Poszukaj możliwości, takich jak symulacja realistycznego zachowania użytkownika i skalowalności w celu obsługi dużych obciążeń użytkowników. Rozważ obsługę różnych protokołów i technologii, integrację z innymi narzędziami testowymi lub strukturami oraz możliwości raportowania i analizy.

  • Rozważ zgodność i integrację. Określ zgodność narzędzi do testowania z istniejącą infrastrukturą i technologiami. Upewnij się, że narzędzia można łatwo zintegrować ze środowiskiem testowym i mogą komunikować się z wymaganym obciążeniem do monitorowania i analizy.

  • Ocena kosztów i licencjonowania. Ocena struktury kosztów i postanowień licencyjnych skojarzonych z narzędziami do testowania. Należy wziąć pod uwagę czynniki, takie jak początkowe inwestycje, koszty konserwacji i koszty pomocy technicznej. Należy również wziąć pod uwagę inne wymagania licencyjne, które zależą od liczby użytkowników lub użytkowników wirtualnych.

  • Przeprowadzanie weryfikacji koncepcji. Wybierz kilka narzędzi, które wydają się być najbardziej odpowiednie na podstawie oceny. Przeprowadź weryfikację koncepcji na małą skalę, aby zweryfikować użyteczność, funkcje i skuteczność narzędzi w konkretnym scenariuszu testowania.

  • Rozważ pomoc techniczną i szkolenia. Oceń poziom pomocy technicznej i szkolenia zapewnianego przez dostawcę lub społeczność narzędzia. Określ dostępność dokumentacji, samouczków i kanałów pomocy technicznej, aby pomóc w rozwiązywaniu wszelkich problemów lub problemów, które mogą wystąpić podczas procesu testowania.

Tworzenie scenariuszy testowych

Tworzenie scenariuszy testowych odnosi się do procesu projektowania określonych sytuacji lub warunków, które są odpowiednie do testowania wydajności obciążenia. Scenariusze testowe są tworzone w celu emulacji realistycznych zachowań użytkowników i wzorców obciążeń. Te scenariusze umożliwiają testerom wydajności ocenę wydajności działania obciążenia w różnych warunkach.

Scenariusze testowe umożliwiają replikowanie różnych wzorców obciążeń, takich jak współbieżny dostęp użytkowników, okresy szczytowego obciążenia lub określone sekwencje transakcji. Testując obciążenie w różnych wzorcach obciążenia, można zidentyfikować wąskie gardła wydajności i zoptymalizować alokację zasobów.

  • Definiowanie zachowania użytkownika. Emuluj realistyczne zachowanie użytkownika i wzorce obciążeń, identyfikując kroki i akcje wykonywane przez użytkowników podczas interakcji z obciążeniem. Rozważ działania, takie jak logowanie, wyszukiwanie, przesyłanie formularzy lub uzyskiwanie dostępu do określonych funkcji. Podziel poszczególne scenariusze na konkretne kroki i akcje reprezentujące interakcję użytkownika z obciążeniem. Możesz uwzględnić nawigowanie po stronach, wykonywanie transakcji lub interakcję z różnymi elementami obciążenia.

  • Określanie zaangażowania danych. Zidentyfikuj dane testowe wymagane do uruchomienia scenariuszy testowych. Możesz uwzględnić tworzenie lub generowanie realistycznych zestawów danych reprezentujących różne scenariusze, profile użytkowników lub woluminy danych. Upewnij się, że dane testowe są zróżnicowane i obejmują różne przypadki użycia, aby zapewnić kompleksową ocenę wydajności.

  • Projektowanie skryptów testowych. Tworzenie skryptów testowych, które automatyzują wykonywanie zdefiniowanych scenariuszy testowych. Skrypty testowe zwykle składają się z sekwencji akcji, żądań HTTP lub interakcji z interfejsami API obciążeń lub interfejsami użytkownika. Użyj narzędzi do testowania wydajności lub języków programowania, aby napisać skrypty, biorąc pod uwagę czynniki, takie jak parametryzacja, korelacja i obsługa danych dynamicznych. Zweryfikuj skrypty testowe pod kątem poprawności i funkcjonalności. Debuguj wszelkie problemy, takie jak błędy skryptu, brakujące lub nieprawidłowe akcje lub problemy związane z danymi. Sprawdzanie poprawności skryptu testowego ma kluczowe znaczenie dla zapewnienia dokładnego i niezawodnego wykonywania testów wydajnościowych.

  • Konfigurowanie zmiennych i parametrów testowych. Skonfiguruj zmienne i parametry w skryptach testowych, aby wprowadzić zmienność i symulować rzeczywiste scenariusze. Uwzględnij parametry, takie jak poświadczenia użytkownika, dane wejściowe lub losowe, aby naśladować różne zachowania użytkowników i odpowiedzi obciążeń.

  • Iteracyjne uściślij skrypty. Stale uściślij i ulepszaj skrypty testowe na podstawie opinii, wyników testów lub zmieniających się wymagań. Rozważ optymalizację logiki skryptu, parametryzacji i obsługi błędów lub dodanie dodatkowych punktów sprawdzania poprawności i punktów kontrolnych.

Konfigurowanie środowiska testowego

Konfigurowanie środowiska testowego odnosi się do procesu konfigurowania konfiguracji infrastruktury, oprogramowania i sieci, które należy utworzyć środowisko, które jest ściśle podobne do środowiska produkcyjnego.

Aby skonfigurować środowisko testowe w sposób zwiększający wydajność, należy wykonać następujące kroki w procesie konfiguracji:

  • Dublowanie środowiska produkcyjnego. Skonfiguruj środowisko testowe tak, aby przypominało środowisko produkcyjne. Należy wziąć pod uwagę czynniki, takie jak konfiguracja infrastruktury, ustawienia sieci i konfiguracje oprogramowania. Celem jest zapewnienie, że wyniki testów wydajnościowych są reprezentatywne dla rzeczywistych warunków.

  • Aprowizuj wystarczające zasoby. Przydziel odpowiednie zasoby, takie jak procesor CPU, pamięć i miejsce na dysku do środowiska testowego. Upewnij się, że dostępne zasoby mogą obsłużyć oczekiwane obciążenie i zapewnić dokładne pomiary wydajności.

  • Replikowanie warunków sieciowych. Skonfiguruj ustawienia sieciowe w środowisku testowym, aby replikować oczekiwane warunki sieciowe podczas rzeczywistego wdrożenia obciążenia. Należy uwzględnić przepustowość, opóźnienie i protokoły sieciowe.

  • Instalowanie i konfigurowanie zależności. Zainstaluj oprogramowanie, biblioteki, bazy danych i inne zależności, które są wymagane do poprawnego uruchomienia obciążenia. Skonfiguruj te zależności, aby były zgodne z oczekiwanym środowiskiem produkcyjnym.

Kompromis: istnieją koszty związane z konserwowaniem oddzielnych środowisk testowych, przechowywaniem danych, używaniem narzędzi i uruchamianiem testów. Poznanie kosztów testowania wydajnościowego i znalezienie sposobu optymalizacji wydatków.

Ryzyko: dane produkcyjne mogą zawierać poufne informacje. Bez niezawodnej strategii oczyszczania i maskowania ryzyko wycieku poufnych danych podczas korzystania z danych produkcyjnych do testowania.

Wykonywanie testów

Uruchom testy wydajnościowe przy użyciu wybranego narzędzia do testowania. Testowanie obejmuje pomiar i rejestrowanie metryk wydajności, monitorowanie kondycji i przechwytywanie wszelkich pojawiających się problemów z wydajnością.

Monitoruj i zbieraj metryki wydajności, takie jak czas odpowiedzi, przepływność, wykorzystanie procesora CPU i pamięci oraz inne istotne wskaźniki.

Użyj zdefiniowanych scenariuszy testowych, aby umieścić obciążenie pod oczekiwanymi obciążeniami. Przeprowadź testy w tych różnych warunkach obciążenia. Na przykład użyj poziomów, takich jak normalne, szczytowe i przeciążenia, w celu przeanalizowania zachowania obciążenia w różnych scenariuszach.

Analiza wyników

Analizowanie wyników testu polega na sprawdzeniu zebranych danych i metryk z testów wydajnościowych w celu uzyskania wglądu w wydajność obciążenia. Celem jest zidentyfikowanie problemów z wydajnością i użycie opinii w celu dostosowania priorytetów w tworzeniu aplikacji. Poniższe akcje to kluczowe kroki analizowania wyników testów.

Przejrzyj metryki wydajności. Zapoznaj się z metrykami wydajności zbieranych podczas testowania wydajności, takimi jak czasy odpowiedzi, przepływność, współczynniki błędów, wykorzystanie procesora CPU i pamięci oraz opóźnienie sieci. Przeanalizuj te metryki, aby zrozumieć ogólną wydajność obciążenia.

  • Zidentyfikuj wąskie gardła. Oceń metryki wydajności, aby zidentyfikować wszelkie wąskie gardła lub obszary nieefektywnej wydajności. Ocena może obejmować długie czasy odpowiedzi, ograniczenia zasobów, problemy z bazą danych, opóźnienie sieci i ograniczenia skalowalności. Wskazanie głównych przyczyn tych wąskich gardeł pomaga określić priorytety ulepszeń wydajności.

  • Skoreluj metryki. Oceń relacje i korelacje między różnymi metrykami wydajności. Na przykład przeanalizuj, jak zwiększone obciążenie lub wykorzystanie zasobów wpływa na czasy odpowiedzi. Zrozumienie tych korelacji może zapewnić cenny wgląd w zachowanie obciążenia w różnych warunkach. Poszukaj wzorców i trendów w danych wydajności w czasie. Analizowanie wydajności na różnych poziomach obciążenia lub w określonych okresach. Wykrywanie trendów może pomóc w identyfikowaniu zmian sezonowych, szczytowych czasów użycia lub powtarzających się problemów z wydajnością.

Ocena kryteriów akceptacji. Porównaj wyniki ponownego testowania ze wstępnie zdefiniowanymi kryteriami akceptacji i celami wydajności. Oceń, czy obciążenie spełnia żądane standardy wydajności. Jeśli obciążenie nie spełnia kryteriów akceptacji, zbadaj i uściślij optymalizacje.

Iteruj i uściślij analizę. Wprowadź inne zmiany i ulepszenia zgodnie z potrzebami. Użyj zebranych danych i metryk, aby zdiagnozować określone problemy z wydajnością. Diagnostyka może obejmować śledzenie składników obciążenia, badanie plików dziennika, monitorowanie użycia zasobów lub analizowanie komunikatów o błędach. Dowiedz się więcej na temat danych, aby zrozumieć podstawowe przyczyny problemów z wydajnością.

Na podstawie analizy wyników testu określ priorytety zidentyfikowanych problemów z wydajnością i zaimplementuj niezbędne ulepszenia. Ulepszenia mogą obejmować optymalizację kodu, dostrajanie zapytań bazy danych, ulepszanie mechanizmów buforowania i optymalizowanie konfiguracji sieci.

Ustanawianie punktów odniesienia

Punkty odniesienia zapewniają punkt odniesienia do porównywania wyników wydajności w czasie. Plany bazowe powinny być znaczącymi migawkami wydajności obciążeń — nie trzeba używać każdego testu jako punktu odniesienia.

Należy wziąć pod uwagę cele obciążenia i udokumentować migawki wydajności, które pozwalają uczyć się w czasie i optymalizować. Użyj tych pomiarów punktu odniesienia jako testu porównawczego dla przyszłych testów wydajnościowych i użyj ich do identyfikowania wszelkich degradacji lub ulepszeń.

Aby ustanowić plany bazowe na potrzeby testowania wydajnościowego i użyć ich jako testu porównawczego dla przyszłych testów wydajnościowych, wykonaj następujące kroki:

  • Identyfikowanie metryk wydajności. Określ konkretne metryki wydajności, które chcesz zmierzyć i śledzić. Przykładami:

    • Czas odpowiedzi lub szybkość reagowania obciążenia na żądania.
    • Przepływność lub liczba żądań przetwarzanych na jednostkę czasu.
    • Wykorzystanie zasobów, takie jak użycie procesora CPU, pamięci i dysku.
  • Rejestruj znaczące pomiary. Zarejestruj metryki wydajności uzyskiwane podczas testu jako miary punktu odniesienia. Te pomiary reprezentują punkt początkowy, z którym porównasz przyszłe testy wydajnościowe.

  • Porównaj przyszłe testy. W kolejnych testach wydajnościowych porównaj metryki wydajności z ustalonymi punktami odniesienia i progami. Porównanie umożliwia zidentyfikowanie wszelkich ulepszeń lub spadku wydajności.

Ciągłe testowanie

Ciągłe testowanie obejmuje ciągłe monitorowanie i udoskonalanie testów. Testowanie ciągłe pomaga zachować spójne i akceptowalne poziomy wydajności. Obciążenie powinno zapewnić spójny i akceptowalny poziom wydajności względem punktu odniesienia. Należy dostosować obciążenie w czasie, aby zapewnić spójną wydajność, która mieści się w dopuszczalnych limitach wydajności. Oto kilka kluczowych rozwiązań:

  • Ustaw limity degradacji. Zdefiniuj progi liczbowe, które określają poziom obniżenia wydajności, który jest akceptowalny w czasie. Ustawiając te limity, można monitorować wahania wydajności i otrzymywać alerty, gdy wydajność spadnie poniżej zdefiniowanego progu.

  • Uwzględnij kontrolę jakości. Uwzględnij wymagania dotyczące wydajności, takie jak wykorzystanie procesora CPU i maksymalne żądania na sekundę, w procesie zapewnienia jakości. Traktuj wymagania dotyczące wydajności o takim samym znaczeniu jak wymagania funkcjonalne. Ten proces pomaga upewnić się, że obciążenie spełnia zdefiniowane wymagania dotyczące wydajności przed wdrożeniem go w środowisku produkcyjnym.

  • Automatyzowanie alertów. W środowiskach na żywo kluczowe znaczenie ma szybkie wykrywanie i reagowanie. Skonfiguruj zautomatyzowane systemy zgłaszania alertów, które używają punktu odniesienia wydajności jako odniesienia. Jeśli występuje znaczne odchylenie wydajności, niezbędne zespoły są natychmiast powiadamiane o działaniach.

  • Przetestuj zmiany. Niektóre problemy z wydajnością mogą manifestować tylko w ustawieniu na żywo. Zastosuj dokładne praktyki testowania dla proponowanych zmian kodu i infrastruktury. Instrumentacja kodu umożliwia uzyskanie wglądu w charakterystykę wydajności aplikacji, takie jak ścieżki gorące, alokacje pamięci i odzyskiwanie pamięci. Te testy zapewniają, że każda wprowadzona zmiana nie obniży wydajności poza dopuszczalne limity.

Ułatwienia dla platformy Azure

Wykonywanie testów: usługa Azure Pipelines umożliwia integrację testów wydajnościowych z potokiem ciągłej integracji/ciągłego wdrażania. Testowanie obciążenia można dołączyć jako krok w potoku, aby zweryfikować wydajność i skalowalność aplikacji.

Usługa Azure Chaos Studio umożliwia wprowadzanie rzeczywistych błędów do aplikacji, dzięki czemu można uruchamiać kontrolowane eksperymenty iniekcji błędów. Eksperymenty pomagają zmierzyć, zrozumieć i poprawić odporność aplikacji w chmurze i usługi.

Azure Load Testing to usługa do testowania obciążenia, która generuje duże obciążenie dla dowolnej aplikacji. Testowanie obciążenia zapewnia możliwości automatyzacji testów obciążeniowych i integrowania ich z przepływem pracy ciągłej integracji i ciągłego dostarczania (CI/CD). Można zdefiniować kryteria testu, takie jak średni czas odpowiedzi lub progi błędów, i automatycznie zatrzymać testy obciążeniowe na podstawie określonych warunków błędu. Testowanie obciążenia oferuje pulpit nawigacyjny, który udostępnia aktualizacje na żywo i szczegółowe metryki zasobów składników aplikacji platformy Azure podczas testu obciążeniowego. Możesz przeanalizować wyniki testu, zidentyfikować wąskie gardła wydajności i porównać wiele przebiegów testów, aby zrozumieć regresje wydajności w czasie.

Analizowanie wyników: Usługa Azure Monitor to kompleksowe rozwiązanie do monitorowania służące do zbierania, analizowania i reagowania na dane telemetryczne ze środowisk chmurowych i lokalnych. Application Insights to rozszerzenie monitora, które udostępnia funkcje APM. Za pomocą usługi Application Insights można monitorować aplikacje podczas programowania i testowania, a także w środowisku produkcyjnym.

Kompromis: Testowanie wymaga czasu i umiejętności do wykonania i może mieć wpływ na wydajność operacyjną.

Lista kontrolna dotycząca wydajności

Zapoznaj się z pełnym zestawem zaleceń.