Serwer na WAMP działa zbyt wolno? Kilka przydatnych porad

W ostatnim czasie dość często korzystam z serwera WAMP (ułatwia wiele spraw na etapie prototypów). Zwykle jego wydajność mi nie przeszkadzała, ale ostatnio zacząłem pracować nad skryptem, który wykonywał kilkaset zapytań do bazy danych w czasie jednej odsłony. Sytuacja ta spowodowała, że skrypt wykonywał się bardzo wolno. Około 40 sekund! Był to o tyle dziwne, że ten sam skrypt na serwerze zewnętrznym wykonywał się w około 3-4 sekundy. Wniosek? Coś nie tak jest w konfiguracji.

 

Strona projektu WAMP

Strona projektu WAMP (http://www.wampserver.com/en/)

Znalazłem potencjalnego winnego zaistniałej sytuacji i rozpocząłem szukanie w Google odpowiedzi jak rozwiązać mój problem. Oczywiście zgodnie z oczekiwaniami dość szybko trafiłem na stackoverflow a tam na wpis zawierający odpowiedź.

Jak przyspieszyć serwer WAMP?

Okazało się, że nie tylko ja miałem problem z serwerem, ale co najważniejsze znane jest skuteczne rozwiązanie polegające na zmodyfikowaniu 3 plików konfiguracyjnych: httpd.conf serwera Apache, php.ini języka PHP i my.ini serwera MySQL.

Przyspieszenie serwera APACHE

W pliku httpd.conf serwera Apache należy znaleźć wpisy EnableMMAP i EnableSendfile i zmodyfikować ich wartość z Off na On (najprawodopodobniej oba polecenia będą umieszczone w komentarzu, więc należy je odkomentować)

EnableMMAP on
EnableSendfile on

[important]Klikając lewym przyciskiem myszy na logo WAMP znajdujące się w pasku zadań (serwer musi być uruchomiony) pojawia się w menu. Z menu należy wybrać opcję APACHE a w niej kliknąć na httpd.conf. W tym momencie otworzy się plik, w którym należy zmodyfikować wcześniej wskazane wpisy. Po wprowadzeniu zmian należy zrestartować WAMP.[/important]

Przyspieszenie interprerata PHP

Kolejne działanie to modyfikacja wpisu w pliku php.ini.

realpath_cache_size= 4m

[important]Podobnie jak w przypadku Apache z menu dostępnego pod lewym przyciskiem wybieramy PHP a w nim php.ini. Po modyfikacji pliku należy zrestartować serwer..[/important]

Przyspieszenie serwera MySQL

Ostatni krok polega na modyfikacji pliku my.ini serwera MySQL. Należy odnaleźć wpis i ustawić w nim następującą wartość:

innodb_flush_log_at_trx_commit = 2

[important]Należy podjąć działania analogiczne jak w przypadku PHP i Apache.[/important]

Podsumowanie

Te kilka zmian spowodowało, że skrypt który wykonywał się w 40 sekund wykonuje się od 3 do 4 sekund, czyli znacznie szybciej. Prawdopodobnie optymalizacja samej bazy danych pozwali osiągnąć jeszcze lepszy wynik.

[important]Serwer WAMP dostępny jest na stronie http://www.wampserver.com/en/. Zwykle z jego instalacją nie ma problemu, ale może się zdarzyć, że jeśli w systemie zainstalowany jest Skype serwer nie wystartuje bo port, z którego będzie chciał skorzystać będzie zajęty.[/important]

VN:F [1.9.22_1171]
Rating: 7.8/10 (5 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
Serwer na WAMP działa zbyt wolno? Kilka przydatnych porad, 7.8 out of 10 based on 5 ratings

1 komentarz

  1. Mistrzu, chyba jestem Ci winny dużą flaszkę! 🙂

    Zrobiłem aplikację opartą o PHP i MySQL, która przetwarza większą ilość dość dużych zdjęć (0,5MB – 5MB), robi miniatury, zapisuje na dysku, robi PDF’y i ich zawartością itp.
    Najprawdopodobniej właśnie tego rozwiązania szukałem (stawiam na httpd.conf, ale nie wykluczam php.ini), bo WAMP przestał mi się zawieszać. Zawsze kończyło się restartem usług.
    Mam podprogram, w którym za pomocą F5 (proste, ale skuteczne) zmienia się zawartość okienka popup, wypełniając je kolejnymi obrazami z dysku (info o ścieżce do pliku jest w bazie) o rozmiarze ok. 0,5MB. Oprócz zawieszania się WAMP’a obserwowałem nieciągłość: zamiast od 1 do 10, wyświetlał np. 1, 2, 3, 4, 1, 2, 3, 1, … – nie dochodził do 10. Zdjęcia wyświetlały się duuuużo wolniej.
    Teraz ani się nie zawiesza, ani nie „resetuje” licznik – dochodzi do 10, a potem 1. Spędziłem kilka tygodni na szukaniu przyczyny, a dziś przeinstalowałem cały serwer razem z WAMP’em. Oczywiście nadal nie działał poprawnie. Szukam z beznadzieją na twarzy czegoś na kształt „WAMP server hangs” i znalazłem Twój artykuł! 🙂

Dodaj komentarz

Twój adres email nie będzie publikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.


Warning: Use of undefined constant XML - assumed 'XML' (this will throw an Error in a future version of PHP) in /home/klient.dhosting.pl/trajluk/zenbox/trajdos.pl/public_html/wp-content/plugins/wp-syntaxhighlighter/wp-syntaxhighlighter.php on line 1048