Optymalizacja wydajności ośrodka webowego

Gdy dostarczanie zawartości z ośrodka webowego zaczyna być niepokojąco powolne, wizytujący mogą szybko zacząć klikać na stronie konkurencji.

Gdy dostarczanie zawartości z ośrodka webowego zaczyna być niepokojąco powolne, wizytujący mogą szybko zacząć klikać na stronie konkurencji.

Wyzwaniem dla zarządców ośrodków webowych jest zapewnienie szybkiego dostępu i pełnych usług, w miarę wzrastania popularności tych ośrodków webowych, często przy użyciu wciąż tych samych zasobów.

Przyglądając się dostępnym środkom i metodom przyspieszania weba, można skupić się na problemie "ostatniej mili", poszukując sposobów urealnienia reakcji sieci z punktu widzenia użytkownika końcowego.

Po pierwsze - usługi adresowe

Przegląd rozpocząć można od problemu podstawowego: kwerendy DNS. Czy zastosowany serwer DNS zwraca adres fizyczny dostatecznie szybko? Częstym błędem jest umiejscawianie usług DNS na najstarszym, najmniej wydajnym serwerze w sieci i lekceważenie jego znaczenia w procesie eksploracji weba. Jednym z pewniejszych rozwiązań może być outsourcing usług DNS - skorzystanie z wyspecjalizowanych w tym zakresie usługodawców. W kolejnym kroku można używać DNS także do globalnego rozkładania obciążeń, polegającego na kierowaniu początkowych zleceń do najbliższej farmy serwerów.

Po drugie - zatrzymać proces spowalniania

Optymalizacja  wydajności ośrodka webowego

Bufory sprzętowe, oferowane np. przez <b>CacheFlow</b> (obecnie <b>Blue Coat</b>), mogą nawet wspomóc w odciążaniu serwera od zleceń.

Z chwilą, gdy zlecenie znajdzie się na drodze do właściwego serwera, zaczyna się realny proces spowalniania. Przyczyn spowalniania jest wiele: połączenia utrzymywane w stanie otwarcia przez powolnych użytkowników wchodzących przez powszechną sieć telefoniczną, nagły natłok nadmiernie wydłużający czas generowania strony, niedoposażona pod względem mocy farma serwerów itp. Problemy te można podzielić na dwie podstawowe kategorie: związane z generowaniem stron oraz związane z siecią i protokołami.

Czas generowania kompletnej strony może być nadmiernie długi. Kiedy używana jest dowolna technologia webowa - na przykład Active Server Pages - strona powinna być budowana jedynie wtedy, gdy jest to konieczne. Wykonywanie skryptów lub generowanie kwerend do bazy danych w celu uzyskania komponentów dla każdego wizytującego nie ma sensu, chyba że istnieją jakieś różnice w tym, co każdy z wizytujących ma zobaczyć. Oprogramowanie buforujące, takie jak SpiderCache, może być używane do przetrzymywania wstępnie wygenerowanych stron. Bufory sprzętowe, oferowane np. przez CacheFlow (obecnie Blue Coat), mogą nawet wspomóc w odciążaniu serwera od zleceń.

Jednak żadne rozwiązanie przyśpieszające nie pracuje zbyt dobrze, gdy w grę wchodzi realna zawartość dynamiczna. Tak zwane bufory dynamiczne, takie jak PreLoader firmy Chutney Technologies, mogą być używane do przetrzymywania fragmentów stron. Jednak dobra wydajność ośrodków z zawartością dynamiczną jest często trudna do uzyskania, tak więc lepiej jest na początek zastosować inne techniki akceleracyjne.

Po wejściu do sieci problemy szybkości zaczynają być szczególnie widoczne. Powszechnie wiadomo, że algorytmy zapobiegania zatorom HTTP i TCP nie pracują razem zbyt dobrze. Co więcej, serwery webowe są często zajęte obsługą wielu małych zleceń i stają się wąskim gardłem we/wy sieci, utrzymując otwarte połączenia dla wielu powolnych akcji webowych.

Prostym remedium na takie problemy jest zapobieganie rozrzutnym połączeniom do serwera. Nie należy trudzić się wymuszaniem na serwerze obsługi pozycji, które nie uległy zmianie. Należy raczej skupić się na tym, jak uczynić ośrodek bardziej odpowiednim dla buforowania, między innymi przez ustawianie odległej daty ważności danych dla elementów, które nie ulegają zmianie, takich jak np. grafiki nawigacyjne.

Inną możliwością jest odciążenie serwera z pomocą innego urządzenia odbierającego połączenia - często nazywanego akceleratorem. Taki multiplekser połączeń - urządzenie zarządzające i utrzymujące wszystkie połączenia TCP z klientami - minimalizuje w efekcie liczbę zleceń, jaką otrzymuje serwer.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200