Strona główna Jaki ruch obsłuży serwer

Jak duży ruch jest w stanie obsłużyć serwer?

Odpowiedź na to pytanie jest bardzo prosta. Bardzo duży. Oczywiście, problem zaczyna być wtedy, kiedy aplikacja jest dynamicznie generowana.
Ale zacznijmy od początku.

Serwer na którym pracuje serwer www, jest oryginalnie nastawiony na serwowanie plików statycznych. Pliki statyczne jest „łatwo” serwować, bo otwiera się plik z dysku (lub ma go w pamięci podręcznej) i przekazuje się przez sieć. Gdyby tylko tak można było budować strony, generowanie stron po stronie serwera było by błyskawiczne.

Czas i ilość współbieżnych klientów, które jest w stanie obsłużyć serwer, zaczyna spadać, czym bardziej dynamiczna jest aplikacja. Każdy proces gdzie do stworzenia wyglądu, treści oraz innych części strony, potrzebna jest praca procesora, zmniejsza wydajność. W skrajnym przypadku, niedostosowana strona która jest mocno dynamiczna, przyjmując wyjątkowo duży ruch, wynikający np. z zainteresowania mediów (tak zwany digg efect – efekt wykopu), powoduje tak duże obciążenie maszyny, że albo serwer generuje strony bardzo wolno, albo zupełnie przestaje działać.

Sposobem rozwiązania problemu zbyt dużej ilości części dynamicznej strony, jest albo ustatycznienie, albo cache'owanie części (lub całości stron). W wyniku zapisania gotowej docelowej strony, lub kawałka strony, nie musimy za każdym razem tworzyć, i obciążać zasobów serwera. Taką treść statyczną, jak pisałem wcześniej, serwer jest już w stanie bez problemu szybko i sprawnie obsłużyć.

Oczywiście „nie ma róży bez kolców”. Zamrożenie gotowych elementów, w pewnych specyficznych warunkach nie jest wskazane (np. cen w sklepie, profilu w serwisie społecznościowym) bo potrzebna jest pewna dynamika tych elementów. Rozwiązuje się to odpowiednim doborem czasu cache'owania względem możliwości serwera. Dla przykładu, strona może być generowana na 1 godzinę, albo bloczek z ceną produktu na 5 minut.

Drugą możliwością zwiększenia „mocy” infrastruktury jest po prostu powiększenie jej. Na przykład przeniesienie bazy danych na osobny serwer, lub zdublowanie aplikacji.
Oczywiście trzeba pamiętać, że zawsze bardzo dokładnie trzeba wiedzieć gdzie jest wąskie gardło, i mieć świadomość, że pozbywając się jednego wąskiego gardła, trafimy na kolejne, ustawione na wyższym poziomie.

Wtorek, 23 Luty 2010 22:23
Zmieniony: Wtorek, 18 Maj 2010 07:57
 

Warto przeczytać

Reklama