Zbyt duże obciążenie serwera CPU, czyli jak zoptymalizować stronę www

Wraz ze wzrostem popularności Twojego serwisu, zużywa on co raz większe zasoby serwera. Jednym z kluczowym wskaźników, który jest eksponowany w ofertach dostawców hostingu jest tzw. TRANSFER. Zużycie transferu to faktycznie jeden z problemów, który dotyka popularne strony. Bardzo często jednak zanim dojdzie do zużycia transferu, najpierw przekraczany jest limit obciążenia serwera. Dzieje się tak w przypadku dynamicznych stron (wielokrotnie odpytywanie bazy danych itp.) – właściciele WordPressa, Joomli i innych CMSów wiedzą o czym mówię. Jeśli masz mocno obciążające skrypty na swoich stronach, w swoim panelu hostingowym możesz zobaczyć taki wykres:



Powyższy rysunek pokazuje w niektórych miejscach dziesięciokrotnie większe obciążenie serwera niż jest dopuszczane. Najczęściej kończy się to tak zwaną blokadą strony. Będzie pojawiać się wówczas BŁĄD 503, o którym pisałem całkiem niedawno. Gdy ujrzymy taki błąd związany z przeciążeniem serwera, możemy zapytać WTF???

Najczęstszą reakcją na taki stan rzeczy jest interwencja u samego dostawcy. Webmasterzy bardzo często nie zdają sobie sprawy, że jest coś takiego jak obciążenie serwera. Dostawcy hostingu nie informują najczęściej o limitach typu „maksymalna ilość zapytań do bazy”, „maksymalne obciążenie serwera”. I nie pomoże nawet to, że w ofercie hostingowej mamy XXXXXX GB/TB transferu danych. Strona zostanie zablokowana i koniec. Dostawcy najczęściej odblokowują stronę, jeśli grzecznie poprosimy i zapewnimy, że zmniejszymy obciążenie w najbliższych kilku dniach czy tygodniach. Co może powodować przeciążenie serwera? O tym dowiesz się już za chwilę.

1. Blokujemy spamujące boty

Jedną z najpopularniejszych przyczyn przeciążania serwera jest atak SPAM botów. Jeśli korzystasz z popularnego oprogramowania, całkiem możliwe że Twoją stronę będą masowo atakować roboty. Będą to nie tylko koledzy z Rosji, ale prawdopodobnie z całego świata. Ludzie piszą spamerskie boty w celu zdobywania linków, dzięki którym pozycjonuje się strony. Tak więc jeśli korzystasz np. WordPressa to prędzej czy później będą atakowały Cię boty do pozycjonowania z takich programów jak chociażby Adder. Ja ten problem rozwiązuje najczęściej poprzez zablokowanie w pliku htaccess odpowiednich adresów IP. Skąd wziąć spamerskie IP? Możesz sam je sprawdzić np. w komentarzach na swoim blogu, ale możesz też skorzystać z gotowej listy SBLAM:

Porównaj IP ze spamerskich komentarzy na swoim WordPressie do listy, której link znajdziesz powyżej. Zobaczysz, że znaczna większość z nich już widnieje na tej liście. Wystarczy umieścić na swojej stronie plik htaccess z zapisami typu „Deny From $adres-ip”.

2. Pozbywamy się zbędnych wtyczek WordPresssa

Jeśli korzystasz z systemu blogowego WordPress – możliwe że bardzo duże obciążenie generują Ci wtyczki, które w zasadzie mógłbyś wyłączyć. Sugeruję nie przekraczać 10 wtyczek dla jednego bloga, choć jest to oczywiście względne. Możliwe że jedna wtyczka wygeneruje Ci większe obciążenie niż dziesięć pozostałych… Przejrzałem fora internetowe i problemy obciążeniowe mogą generować:

  • wtyczki do tworzenia map XML dla wyszukiwarek, np. Google XML Sitemaps Generator;
  • wtyczki do tłumaczenia języka – Google Tłumacz;
  • wp-cron (plik wordpressa odpowiedzialny za aktualizacje itp.);
  • zaawansowane wtyczki do statystyk, galerii itp.

3. Cache strony

W wielu przypadkach rozwiązaniem problemy jest zainstalowanie specjalnych wtyczek do tworzenia cache strony. Spowoduje to, że strona nie będzie za każdym razem odwoływała się do bazy danych, a będzie korzystała ze statycznych plików, które znacznie odciążą serwer. Polecam spróbować z wtyczkami:

4. Ogólne porządki i optymalizacja

Przejrzyj bazę i usuń zbędne rzeczy. Być może zalegają w bazie spamowe komentarze i inne zbędne elementy. Warto co jakiś czas przeczyścić bazę w celu usprawnienia działania naszej strony. Do pomocy może nam posłużyć też Google Webmaster Tools. Sprawdzisz w nim długość wczytywania się strony, odnajdziesz błędy typu 404 itp. Warto co jakiś czas przejrzeć pojawiające się błędy i wprowadzić odpowiednie poprawki.

5. Zmiana skryptu strony

Niektóre skrypty generują bardzo duże obciążenie. Warto korzystać ze skryptów, które są dobrze zaoptymalizowane. Jeśli korzystamy z gotowego CMS to mamy ograniczone pole manewru. Jeśli korzystamy ze swojego autorskiego oprogramowania warto sprawdzić jak można usprawnić jego działanie, tak aby generował mniejsze obciążenie. Być może ilość zapytań jaka idzie do bazy jest zbyt duża – jeśli jest taka możliwość warto ją ograniczyć.

6. Zmiana hostingu

Nie myśl, że jestem specjalistą od serwerów i hostingów. Po prostu sparzyłem się już na kilku usługach i wiem mniej więcej, co w trawie piszczy… Zdarza się, że problem występowania błędu leży po stronie Twojego dostawcy hostingu. Może zła konfiguracja? Może jeszcze coś innego. Jeśli opisywane powyżej sposoby nie przynoszą rezultatu, a notujesz na swojej stronie ledwie kilkadziesiąt czy kilkaset odwiedzin – to z pewnością jest coś nie tak. Zapytaj swojego dostawcy w czym może tkwić problem? Jeśli nie masz bardzo popularnej strony a wciąż generujesz zbyt duże obciążenie – sugeruję po prostu zmienić dostawcę hostingu i sprawdzić czy sytuacja będzie się powtarzać…

Arkadiusz Podlaski

Certyfikowany specjalista Google. Pomaga przedsiębiorcom oraz firmom rozwijać biznes w internecie. Swoje doświadczenia zdobywał między innymi w firmach takich jak LPP, Polska Press czy Gratka Technologie.

Zobacz wszystkie posty

8 komentarzy

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

  • Większość porad była mi znana, dziękuję jednak za listę spamerskich IP, o której nie miałem pojęcia. Co prawda używam wtyczki blokującej spamerskie komentarze, mimo to zawsze warto być zabezpieczonym z każdej strony. Tymbardziej, że w wielu przypadkach blokada strony to strata zysków oraz odwiedzających, warto więc uprzednio się przed tym ustrzec.

    Artur Smolicki
    http://www.newcreative.pl

  • Mnie również przydała się lista spamerskich IP, ciężko było mi ja znaleźć wcześniej. Bardzo dobry artykuł.

  • Hej, lista Black IP ekstra. Co do reszty porad, z większością się zetknąłem. W przypadku SEO, wielu osobom będzie trudno rozstać się z XML Sitemaps, bo to właśnie pingowanie sitemapy, po dodaniu wpisu, pozwala na jej szybką indeksację.

  • Jak masz dostep do firewalla iptables, to lepiej jest zablokowac cale klasy adresowe krajów najwięszych spamerów jak rosja, chiny, indie, pakistan itp. niż próbować blokować spamerów w htaccess. Niestety ci najbardziej upierdliwi dość szybko zmieniają ip oraz url swego spambota 🙂
    Grzegorz Adamiec

  • Jak masz dostep do firewalla iptables, to lepiej jest zablokowac cale klasy adresowe krajów najwięszych spamerów jak rosja, chiny, indie, pakistan itp. niż próbować blokować spamerów w htaccess. Niestety ci najbardziej upierdliwi dość szybko zmieniają ip oraz url swego spambota 🙂 Grzegorz Adamiec

  • A ja nie polecam super cache’a -> ostatnio zepsuła mi stronę (pojawiły się ciekawe znaczki) od tamtej pory używam gator cache i problemów nie ma.

    Mimo wszystko cache’owanie się sprawsza, myślę że do listy obciążających wtyczek można by dodać relewanssi.

    Blokadę IP zaraz wypróbuję ( wg PEWIKa mam po kilkaset wejść dzienniem z czego większość odwiedza maks jden link i koniec

Arkadiusz Podlaski

Certyfikowany specjalista Google. Pomaga przedsiębiorcom oraz firmom rozwijać biznes w internecie. Swoje doświadczenia zdobywał między innymi w firmach takich jak LPP, Polska Press czy Gratka Technologie.