Drupal i wydajność na serwerach VPS

Gdyby zastanowić się przez chwilę, czy serwis oparty o Drupala będzie działał wydajniej po przeniesieniu się z hostingu dzielonego na serwer VPS, odpowiedź wydaje się oczywista – VPS to duży skok jakościowy w sferze wydajności. Jednak nie zawsze.Gdy w konfiguracji Drupala włączone jest pobieranie wyświetlanych stron z cache, wydajność zależy przede wszystkim od prędkości procesora oraz wydajności bazy danych. Jednak zdarzają się serwisy, w których korzystanie z cache jest utrudnione lub wręcz niemożliwe.

W takiej sytuacji każde wywołanie strony oznacza włączenie co najmniej kilkunastu plików przy pomocy operacji include. Czy włączenie pliku to taka czasochłonna operacja?

Napotkałem ostatnio taką właśnie sytuację – serwis uruchomiony na dzielonym hostingu działał o rząd wielkości szybciej niż uruchomiony na serwerze VPS, co stwierdziłem przy pomocy narzędzia ab (istotne jest, aby uruchamiać ab bezpośrednio na testowanym serwerze, aby odrzucić wpływ komunikacji sieciowej na pomiar wydajności, jeżeli już mierzymy ją tym sposobem). Analiza logów wygenerowanych przez moduł xdebug wykazała, że ponad połowa czasu wykonania została spędzona w operacji włączania plików.

Szybkie pomiary wykonane naiwną metodą kopiowania gigabajta danych z /dev/zero do pliku i z powrotem wykazały, że dane były kopiowane ze średnią prędkością 20MB/s (megabajtów na sekundę), co jest wynikiem bardzo miernym.

Duże znaczenie dla wydajności operacji dyskowych ma wybór oprogramowania realizującego wirtualizację. Ogólnie rzecz biorąc serwery VPS oparte o OpenVZ lub Virtuozzo realizują dostęp do dysku z prędkością niewiele mniejszą niż działoby się to na serwerze dedykowanym. Z kolei platforma Xen, choć zapewnia lepszą izolację serwerów wirtualnych – albo w wyniku tego – wypada w tym porównaniu bardzo mizernie. Jeżeli więc wiemy z góry, że nasza aplikacja włącza wiele plików, serwer VPS oparty o Xen może nie być najlepszym wyborem.

Czasem też wydajność operacji dyskowych jest obniżona przez kiepskie sąsiedztwo, a więc serwery VPS znajdujące się na tym samym fizycznym serwerze, na których uruchamiane są aplikacje intensywnie korzystające z dostępu do dysku.

Dobrym pomysłem jest wykupienie w upatrzonej firmie serwera VPS na miesiąc i wykonanie własnych testów wydajnościowych.

Komentarze (1)

  1. Paweł pisze:

    Mam jedną stronę na najtańszym vps z server4you. Jestem zadowolony.

    Wywalali mnie z dzielonych hotingów teraz powłączałem dodatkowe moduły i stronka chodzi dobrze. wytzrymuje około 10 000 uu dziennie.

Napisz komentarz