Mierzenie i optymalizacja wydajności sieci

0

Zarządzanie wydajnością sieci to ciągły proces poprawiania, mający na celu redukcję kosztów, zwiększenie produktywności czy uniknięcie kosztownej wymiany sprzętu na szybszy. Jednak, jeśli chce się coś poprawić, najpierw należy to zmierzyć. Dlatego omawiamy najważniejsze parametry opisujące wydajność sieci, wyjaśniamy, co oznaczają, jak je zmierzyć i jak poprawić.

Zarządzanie wydajnością sieci to proces, który ma zapewnić, że aplikacje działają w sieci tak wydajnie, jak to tylko możliwe oraz pozwala znaleźć sposoby na poprawienie wydajności. Należy odróżnić zarządzanie wydajnością sieci od wykrywania błędów i awarii w sieci. W tym drugim przypadku celem jest zapewnienie dostępności systemów. Najważniejszym wskaźnikiem wydajności jest to, jak wydajnie aplikacje działają z punktu widzenia użytkownika. Decyduje o tym kilka parametrów, które opisujemy poniżej.

One-Way Delay
OWD (one-way delay) to czas, jaki zajmuje pakietowi osiągnięcie docelowej lokalizacji (definicja tego parametru została zawarta w dokumencie RFC 2679).

Na OWD składają się dwa elementy związane z łączami sieciowymi:

  • Opóźnienie propagacji. Czas pokonania przez pakiet odcinka od jednego do drugiego końca danego łącza sieciowego. W przypadku prostych połączeń opóźnienie propagacji wynika z długości danego łącza i fizycznej szybkości propagacji w danym medium. Szybkość propagacji jest mniej więcej taka sama w kablach miedzianych i światłowodach, a wynosi ok. dwóch trzecich szybkości światła.
  • Opóźnienie przetwarzania (serialization delay). Czas potrzebny na konwersję pakietu na jednostkę transmisji szeregowej (serial transmission units), np. bity. Wartość ta równia się wielkości pakietu podzielonej przez przepustowość łącza wyrażoną w bitach na sekundę.

Niektóre rodzaje łączy mogą wprowadzać dodatkowe opóźnienia do OWD, ze względu na zastosowanie takich mechanizmów, jak unikanie kolizji czy retransmisja uszkodzonych pakietów.

Wewnątrz węzła sieci, np. routera, pakiet może napotkać na opóźnienia związane z przekazywaniem (forwarding delay). Jest to czas, jaki węzeł potrzebuje na odczytanie z pakietu informacji potrzebnych do przekazania go do właściwego łącza. Występują również opóźnienia kolejkowania, jeśli pakiet musi czekać, aż port wyjściowy będzie dostępny.

Opóźnienie OWD między punktem A i B może być mierzone poprzez wysyłanie pakietów zawierających informację o czasie wysyłania z punktu A, a następnie rejestrowanie czasu dotarcia tego pakietu do punktu B. Zegary w obu punktach muszą być zsynchronizowane, np. NTP z wykorzystaniem (Network Time Protocol).

Skracanie opóźnień OWD to przede wszystkim zadanie na etapie planowania sieci i polega na minimalizowaniu fizycznych odległości, które będą musiały pokonywać pakiety. Opóźnienia powstające w węzłach sieci można zredukować, wykorzystując algorytmy szybkiego przekazywania oraz zapewniając wystarczającą wydajność do obsługi szczytowych obciążeń, a także poprzez redukcję liczby węzłów sieci.

Round-Trip Time
RTT (round-trip time) to czas pokonania przez pakiet drogi z punktu A do B i z powrotem. Na RTT składa się opóźnienie OWD oraz dodatkowo czas odpowiedzi punktu B. Odzwierciedla czas, jaki jest potrzebny na odebrania potwierdzenia, że pakiet dotarł do docelowej lokalizacji. W przypadku takich protokołów transportowych, jak TCP, RTT ma wpływ na maksymalną przepustowość, jaką udaje się osiągnąć. RTT ma również bezpośredni wpływ na szybkość reakcji takich aplikacji, jak transmisja głosu i wideo.

Do pomiarów RTT najczęściej używa się narzędzi ping czy fping, które wysyłają żądania Echo protokołu ICMP (Internet Control Message Protocol) do docelowego punktu i mierzą czas, kiedy nadejdzie odpowiedź.

Te same techniki, wykorzystywane do optymalizacji OWD, sprawdzą się również w przypadku RTT. Poza tym zwiększenie mocy obliczeniowej węzłów sieci oraz optymalizacja czasów reakcji punktu docelowego poprawia RTT.

Jitter
Jitter to różnica pomiędzy faktycznym czasem przybycia pakietu, a teoretycznym czasem, w którym pakiet dotarłby w idealnych warunkach. Przyczynami tego zjawiska mogą być zakłócenia pomiędzy wieloma strumieniami danych, które konkurują pomiędzy sobą o łącze (przeciążenie) lub o moc obliczeniową węzłów sieci.

Jitter można mierzyć takimi samymi metodami, co OWD. Ten parametr jest szczególnie ważnych w przypadku aplikacji czasu rzeczywistego, jak systemy tele- i wideokonferencyjne. Takie systemy zwykle wykorzystują specjalny bufor, żeby zminimalizować efekt jitter. Pakiety są przechowywane w tym buforze do czasu, aż nadejdzie ich kolej odtworzenia, dzięki czemu zachowuje się stały czas opóźnienia i przekaz jest odtwarzany płynnie.

Utrata pakietów

Utrata pakietów (packet loss) to prawdopodobieństwo, że pakiet zostanie utracony podczas transmisji między lokalizacją źródłową a docelową. Są dwie główne przyczyny, powodujące utratę pakietów:

  • Przeciążenie. Gdy ruch w sieci wzmaga się, pakiety są przechowywane w buforach węzłów sieci, a te bufory mają określoną pojemność. Gdy bufor się wypełni, część pakietów zostaje odrzucona lub skasowana. Przepełnienie bufora może być chronicznym problemem w sieciach o niewystarczającej przepustowości lub pojawiać się okazjonalnie w momentach największego obciążenia sieci.
  • Błędy. Pakiet mogą ulec uszkodzeniom z powodu zakłóceń na łączach lub z powodu innych defektów. Uszkodzone pakiety zwykle są wykrywane w lokalizacji docelowej poprzez sprawdzenie sum kontrolnych i odrzucane.

Utracone pakiety wymagają retransmisji, co zmniejsza faktyczną przepustowość sieci. W aplikacji czasu rzeczywistego nie stosuje się retransmisji, ponieważ retransmitowane pakiety zakłócałyby kolejność odbierania. W przypadku takich aplikacji uszkodzone pakiety są odrzucane, czego efektem jest utrata części odbieranych informacji.

Utratę pakietów można mierzyć, wysyłając zbiór pakietów do lokalizacji docelowej i sprawdzać, jaki odsetek tych pakietów został utracony podczas transmisji. Routery i inne węzły sieciowe również zawierają liczniki, które umożliwiają mierzenie liczby odrzuconych pakietów.

Negatywne efekty przeciążenia sieci można zminimalizować poprzez zwiększenie pojemności buforów węzłów sieci, tak, żeby były w stanie obsługiwać szczytowe natężenie ruchu. Trzeba jednak pamiętać, że zwiększenie buforów może doprowadzić do wydłużenia czasów OWD i RTT.

Narzędzia QoS, jak DiffServ czy IntServ, mogą chronić część pakietów przed utratą, ale tylko kosztem większej utraty pakietów pozostałej części ruchu, nie objętej mechanizmami QoS.

Zmiana kolejności pakietów (reordering)
Protokół IP nie gwarantuje, że pakiety dotrą w takiej kolejności, w jakiej zostały wysłane. Do lokalizacji docelowej mogą dotrzeć pakiety poza kolejką, co wynika z inne trasy sieciowej, którą były przesłane, czy z powodu wypierania dużych pakietów przez małe.

Jednak obecne implementacje stosu TCP, jak SACK (Selective Acknowledgments) oferują świetną wydajność nawet w przypadku zmiany kolejności pakietów.

Zmianę kolejności pakietów można mierzyć poprzez wysłanie strumienia pakietów, a następnie porównanie kolejności ich wysłania z kolejnością odebrania. Dwie metody tego typu pomiarów zostały opisane w dokumentach RFC 4737 oraz RFC 5236.

Występowanie zmiany kolejności pakietów można ograniczyć poprzez redukcję równoległych połączeń w sieci lub korzystając z węzłów sieci, które są wyposażone w mechanizmy pilnujące, żeby pakiety z jednego strumienia były przesyłane tą samą drogą.

Najważniejsze są aplikacje

Na zarządzanie wydajnością sieci składają się planowanie, pomiary i optymalizacja. Celem tych działań jest zapewnienie aplikacjom warunków do ich sprawnego działania, przy jednoczesnym ograniczaniu kosztów utrzymania sieci. Istotne jest tu odwołanie do aplikacji, ponieważ mają one różne wymagania. Przykładowo:

  • transmisja strumieniowa (głosu lub wideo) wymaga małych opóźnień, ale za to toleruje utratę części pakietów;
  • przesyłanie dużej liczby plików czy wiadomości e-mail wiąże się z gwarancją, że przesłane zostaną wszystkie pakiety i wymaga znacznych przepustowości, ale nie trzeba zapewniać ciągłości transmisji;
  • komunikatory internetowe potrzebują niewielkiej przepustowości, ale sieć powinna zapewniać transmisję bez opóźnień.

Narzędzia do mierzenia wydajności sieci
Jest wiele narzędzi, które umożliwiają wykonanie pomiarów wydajności sieci. Pozwalają one sprawdzić o wiele więcej parametrów, niż opisane w tym artykule. Narzędzia te potrafią wyświetlać wyniki pomiarów w formie graficznej, co pozwala łatwo porównywać bieżącą wydajność z danymi historycznymi. Więcej o narzędziach do mierzenia wydajności sieci piszemy w artykule Monitorowanie sieci – przegląd narzędzi open source.

Pomiary właściwych parametrów to podstawa zarządzania wydajnością sieci. Później można przejść do innych obszarów, jak analiza ruchu czy zarządzanie wydajnością urządzeń Mierząc wydajność sieci, pomiarów można dokonywać dla wybranego portu, np. portu TCP 80, lub dokonywać pomiarów na bazie czynności wykonywanych przez użytkowników, np. ile czasu ładowała się strona logowania dla danego użytkownika. Do pomiarów wydajności na wybranych portach należy wykorzystywać narzędzia obsługujące protokoły Netflow, IPFIX lub RMON.

Do dokładnej analizy ruchu używa się innych narzędzi, tzw. snifferów, które pozwalają ustalić, jakie protokoły są wykorzystywane w sieci czy zlokalizować problemy z retransmisją i negocjowaniem połączeń przez protokoły.

Do planowania pojemności sieci wykorzystuje się programy PacketTrap, Scrutinizer NetFlow and sFlow Analyzer czy NetQoS, które pozwalają oszacować wpływ nowych aplikacji na sieć czy przewidzieć wzrost wykorzystania sieci.

Do generowania ruchu w celu oszacowania maksymalnych obciążeń, jakie sieć jest w stanie obsłużyć, używa się narzędzi, które generują ruch zdefiniowany w skryptach.

Poprawnie prowadzone zarządzanie wydajnością sieci powinno dać odpowiedź na następujące pytania:

  1. Czy da się zmierzyć wydajność dostarczania najważniejszych aplikacji? Przykładowo, jaka jest wydajność działania systemu CRM z punktu widzenia zdalnych użytkowników (nie można skupiać się tylko na tym, czy aplikacja jest dostępna).
  2. Jaka część ruchu w sieci jest faktycznie związana z działalnością firmy, a jaka nie? Należy ustalić priorytety dla poszczególnych rodzajów transmisji, np. strumieniowej transmisji wideo, która staje się coraz ważniejsza.
  3. Czy sieć jest przygotowana do konwergencji usług komunikacyjnych i transmisji danych (Unified Communication)? Przykładowo, transmisja wideo można mieć duży wpływ na przesyłanie danych.

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ