Kiedy chcesz monitorować serwer Apache, musimy znać kilka aspektów:
- Ile próśb może wytrzymać?
- Szybkość, z jaką odpowiada na prośby
- Jaki jest czas oczekiwania?
- Jakie aplikacje lub usługi można ulepszyć lub zoptymalizować
ApacheBenchApacheBench jest to oprogramowanie komputerowe, które działa w wierszu poleceń w celu pomiaru wydajności, zwłaszcza serwerów WWW i usługi http. To oprogramowanie zostało opracowane do testowania serwera HTTP Apache, ale będąc narzędziem do testowania usług http, można go używać do testowania dowolnego serwera WWW, takiego jak Nginx, Lighttpd.
Narzędzie ApacheBench znajduje się w repozytoriach Linuksa i jako biblioteka na serwerze Apache, a zatem jest darmowym oprogramowaniem typu open source i korzysta z licencji Apache.
Ten rodzaj testu jest bardzo łatwy do wykonania w szybki sposób za pomocą polecenia Apache Bench ab.
Ten test szybko pokaże nam, czy wystąpił natychmiastowy problem z instalacją Apache i dlatego źle reaguje.
Pomaga nam również z następującym pytaniem Jak daleko mogę używać lub wymusić korzystanie z serwera i jego zasobów internetowych za pomocą Apache, PHP i MySQL? (z jednoczesnymi połączeniami i stroną żądania ładowania), plus to, co musimy zoptymalizować w konfiguracji Apache i PHP, aby uzyskać a lepsza wydajność i wyeliminować problemy z odpowiadaniem na prośby odwiedzających.
1. Instalowanie ApacheBench na serwerach Linux
Ubuntu/Debian
sudo apt-get install -y apache2 sudo apt-get install apache2-utils
Rudy / Centos
mniam zainstaluj narzędzia httpd
Przeprowadzimy testy z różnymi domenami i ip. Zaczniemy od otwarcia okna terminala i wykonania następujących testów:
Serwer lokalny lub localhost również ip 127.0.0.1
od 127.0.0.1/Lokalny Gospodarz
2. Zapytania
Przyjrzyjmy się zapytaniu z parametrami. Wysyłamy 100 zapytań w grupach po 30 na raz na google.com i zapisujemy uzyskane dane w pliku csv, kod wygląda następująco:
ab -g dane.csv -n 100 -c 30 google.com/
Analizujemy wynik
Oprogramowanie serwera: GFE / 2.0 // Witryna operacyjna Serwer sieciowy Google oparty na Linux Server Nazwa hosta: google.com Port serwera: 80 Ścieżka dokumentu: / Długość dokumentu: 262 bajty Poziom współbieżności: 30 Czas potrzebny na testy: 1370 sekund Pełne żądania: 100 Nieudane żądania: 0 Odpowiedzi inne niż 2xx: 100 Łącznie przesłanych: 53100 bajtów Przesłany HTML: 26200 bajtów Żądania na sekundę: 73,01 [# / sek] (średnia) // średnia na żądanie Czas na żądanie: 410.899 [ms] (średnia) / / średnia na żądanie Czas na żądanie: 13,697 [ms] (średnia, dla wszystkich jednoczesnych żądań) // średnia na całość Szybkość transferu: 37,86 [Kbajtów / s] odebranych Czasy połączenia (ms) // Czasy połączenia, procesu i oczekiwania min średnia [+/- sd] mediana maks. Połączenie: 42 81 53,0 73 446 Przetwarzanie: 48 190 265,7 88 1286 Oczekiwanie: 46 114 148,2 86 1246 Łącznie: 114 270 274,7 150 1369 Procent żądań obsłużonych w określonym czasie (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (najdłuższe żądanie)
Widzimy, że odpowiadał na 73 żądania na sekundę ze średnim czasem na żądanie 410 899 milisekund i szybkością transferu 37,86 KB/s, widzimy też, jak różni się połączenie, proces i czas oczekiwania.
Plik danych CSV będzie miał następującą strukturę.
Struktura CSV
(starttime) Wt. Mar 24 11:53:03 2015 - (sekundy) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (wait) 66 (starttime) Wt. Mar 24 11:53:03 2015 - (sekundy) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (wait) 72 (starttime) Wt. Mar 24 11:53:03 2015 - (sekundy) 1427208783 - (ctime) 64 - (dtime) 56 - (czas) 120 - (czekaj) 56
Następnie z terminala z edytorem tekstu stworzymy plik tekstowy do oceny wielu adresów URL tej samej domeny. Narzędzie ApacheBench obsługuje do 20 tysięcy adresów URL, takich jak poniższe.
Plik będzie miał następującą strukturę:
http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/Testujemy jedno żądanie na raz:
ab -g data.csv -n 1000 urls.txtW tym przypadku, ApacheBench zbierać adresy url.txt i wysyłaj żądania do serwera. Nazwa domeny adresów URL musi być taka sama dla wszystkich adresów URL.
Przypadek, w którym 10 jednoczesnych użytkowników wykonuje po 10 wizyt na stronie
Jest to około 100 stron, które są ładowane przez 10 różnych jednoczesnych i cyklicznych użytkowników, każdy użytkownik tworzy 10 stron, które ładują się lub są wyświetlane sekwencyjnie w każdym żądaniu.
Testujemy:
ab -l -r -n 100 -c -k 10 http://www.eexample.com/klienci/Oznacza to maksymalne obciążenie witryny, która otrzymuje około 100 000 wizyt miesięcznie, które muszą być obsługiwane i odpowiadać na serwer.
Przypadek, w którym 50 jednoczesnych użytkowników odwiedza tę samą stronę 20 razyChodzi o to, że serwer odpowiada na 1000 stron, czyli 50 użytkowników na 20 żądań jednocześnie, każdy użytkownik wykonuje kolejno 20 zapytań do stron:
ab -l -r -n 1000 -c -k50 http://www.eexample.com/czat/Można to wykorzystać do przetestowania bloga lub systemu, w którym użytkownicy lub odwiedzający dużo komentują, wysyłając wiele próśb, takich jak czat lub system komentarzy, taki jak Facebook.
Tego typu test może być równoznaczny z ruchem na bardzo aktywnej stronie internetowej lub blogu.
Szybki test PHP i MySQLTworzymy dowolną bazę danych mysql lub jeśli mamy taką do przetestowania używamy jej to tworzymy skrypt php o nazwie absql.php
Test AB PHP i MySQLWysyłamy 10 000 żądań do skryptu, a tym samym do MySQL.
ab -n 1000 -c 5 http://190.165.210.108/absql.php
Przeanalizuj wyniki każdego testu za pomocą ApacheBench. Najważniejsze dane to te, które dostarczają nam informacji o żądaniach i odpowiedziach z serwera:
Analizuj wyniki ApacheBench1. Ile żądań na sekundę może obsłużyć serwer, wyświetlając? Pozostałe wskaźniki nie są zbyt przydatne, ponieważ nie reprezentują czegoś rzeczywistego w tym kontekście.
2. Czy są jakieś błędy na stronie internetowej lub konfiguracji Apache? Gdy serwer potrzebuje czasu na odpowiedź lub ulega awarii, musimy przeanalizować, czy występują problemy z pamięcią lub wysokie zużycie zasobów.
3. Na jakim poziomie współbieżności serwer Apache zacznie zwalniać lub ulegać awarii i jak długi będzie czas oczekiwania? Jeśli dzieje się to na niskim poziomie współbieżności, coś jest nie tak, powinniśmy wiedzieć co to jest i co jest potrzebne do tego, żeby zadziałało, być może więcej zasobów serwerowych.
3. Czynniki, które należy wziąć pod uwagę, aby poprawić wydajność w Apache
Wydajność Apache1. Moduł Mod_cache z Apache do strony pamięci podręcznej żądań / wyników. Spowoduje to poprawę wydajności 5-10x w stosunku do wszystkich innych metod łącznie.
2. php_memcache zarządza pamięcią podręczną danych dla skryptów PHP i zapytań. Może to spowodować 50% -100% wzrost wydajności na stronach internetowych.
3. Wtyczki do pamięci podręcznej dla Joomla, WordPress, PrestaShop i niektórych frameworków lub CMS.
4. Mod_wygasa moduł Apache wykorzystuje pamięć podręczną odwiedzających i utrzymuje strony przez określony czas, zamiast ponownie wysyłać żądania do tych stron i ponownie ładować, działa, jeśli sieć nie zmienia swojej zawartości co minutę.
Innym aspektem, który ma duży wpływ na wydajność Apache, jest PHP i MySQL, poprawiając wydajność MySQL poprzez optymalizację konfiguracji plików mój.ini xampp, WAMPP lub Lampp i zoptymalizować zapytania lub żądania wysyłane do sieci korzystającej z php i generującej zawartość z MySQL, próbując zoptymalizować użycie wolnego dziennika zapytań MySQL, aby zobaczyć, na czym polega problem i poprawić wydajność.
Jeśli chcesz uzyskać więcej informacji o tym, jak używać AppacheŁawka.
Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt