Serwery webowe - konkurencja się zaostrza

Zupełnie nowym mechanizmem jest Application Initialization Module. Wiele aplikacji webowych wymaga wykonania określonych procesów przed rozpoczęciem właściwej pracy. Przykładowo, w przypadku systemów zarządzania treścią niezbędne może być wygenerowanie zawartości statycznej czy oczyszczenie cache. Tego typu procesy można zdefiniować w ramach modułu inicjalizacji aplikacji. Możliwe jest skonfigurowanie zawartości tymczasowej, zanim aplikacja nie wykona swojej inicjalizacji.

W IIS 8.0 wprowadzono także wiele usprawnień w zakresie obsługi i zarządzania certyfikatami SSL (Secure Sockets Layer), oraz zaawansowane możliwości ograniczania dostępu do usług HTTP i FTP. Możliwe jest między innymi automatyczne ograniczanie dostępu dla adresów IP, które przekroczyły określony limit połączeń. Istnieją także mechanizmy blokowania oparte na nagłówkach HTTP. Serwer IIS dostępny jest tylko na platformę Windows.

Zobacz również:

  • Wielka inwestycja Atmana w przetwarzanie danych
  • AI ma duży apetyt na prąd. Google znalazł na to sposób
  • OpenAI rozważa stworzenie własnych układów scalonych AI

Zdrowa zasada konkurencji

Zwiększający się stale ruch w serwisach internetowych powoduje, że potrzebne są coraz wydajniejsze serwery webowe. Dodatkowe wydatki na sprzęt można ograniczyć, optymalizując oprogramowanie serwerowe.

Konkurencja w tym zakresie powoduje, że w odpowiedzi na coraz skuteczniejsze posunięcia związane z małym projektem, jakim do tej pory był Nginx, również twórcy narzędzi o ugruntowanej pozycji, takich jak Apache i Microsoft - wprowadzają mechanizmy podnoszące ich wydajność. Asynchroniczna praca serwera Nginx i niskie zapotrzebowanie na pamięć czynią z niego idealne rozwiązanie dla serwisów o dużym ruchu.

Przyzwyczajenie administratorów i stabilność projektu Apache powodują, że obecnie jego pozycja wydaje się niezagrożona. Nie jest tak w przypadku serwisów o największym ruchu, gdzie udział Nginxa przekroczył już 25%.

Wreszcie, zmiany w serwerze Microsoftu, które podnoszą jego wydajność i bezpieczeństwo, mogą zwiększyć zainteresowanie tą technologią także w tych zastosowaniach.

Testowanie wydajności serwera z wykorzystaniem narzędzia ab
Oprogramowanie ApacheBench pozwala na przetestowanie obciążalności serwera i aplikacji webowej.

Przykładowe wywołanie: ab -n 1000 -c 10http://localhost/

gdzie:

parametr n=1000 oznacza, że zostanie wykonanych 1000 zapytań,

parametr c (concurrency level) określa liczbę jednoczesnych połączeń,

umożliwia wyświetlenie raportu zawierającego m.in.: wielkość dokumentu, liczbę przetransferowanych danych, zakończonych i zakończonych niepowodzeniem zapytań. Otrzymamy także statystkę czasów połączeń. Na podstawie otrzymanych danych możemy zdecydować, czy parametry są wystarczające i ewentualnie podjąć decyzję o optymalizacji kodu serwisu, zmianie oprogramowania serwera lub samego serwera. Program może także zapisać dane do pliku, wykonywać test tylko przez określony w sekundach czas, czy autoryzować się w serwisie na ustalonego w parametrze użytkownika.

Więcej informacji zawiera dokumentacja narzędzia.

Artykuł pochodzi z numeru 04/2012 magazynu Networld


TOP 200