Lokator 137 Zgłoś post Napisano Styczeń 24, 2014 Witajcie, Chciałbym zagłębić się w tematykę wydajności serwerów www. Chciałbym abyście podzielili się wyborem, doświadczeniami oraz wiedzą ogólną dotyczącą tychże serwerów. Prosiłbym o uzasadnienie Waszego wyboru, opisanie cech (wad i zalet) używanych przez Was serwerów www Czy są serwery lepsze, bądź takie, które mogłyby konkurować ze znanymi większości Apache'm, Nginx'em oraz OpenLiteSpeed'em? Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 25, 2014 Ja ostatnio zagłębiam się w nginx z modułem LUA. Demon prędkości, bo logikę aplikacji można pisać praktycznie w kodzie serwera WWW. Udostępnij ten post Link to postu Udostępnij na innych stronach
spindritf 240 Zgłoś post Napisano Styczeń 25, 2014 Wydajność serwera będzie miała trzeciorzędne znaczenie przy 99% zastosowań i będzie się też różniła w zależności od zastosowania. Wybierz raczej coś wygodnego w konfiguracji i z dobrym wsparciem, szczególnie regularnymi aktualizacjami. 1 Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 26, 2014 Nginx. Udostępnij ten post Link to postu Udostępnij na innych stronach
krzys21 0 Zgłoś post Napisano Styczeń 26, 2014 lighttpd, bo jest lżejszy od Apache, a w większości zastosowań zrobi to samo. Nginx nigdy nie ruszałem, więc się nie będę wypowiadać na jego temat. Udostępnij ten post Link to postu Udostępnij na innych stronach
Pan Kot 1535 Zgłoś post Napisano Styczeń 26, 2014 Nginx jest moim skromnym zdaniem najlżejszym, najbardziej elastycznym i najszybszym serwerem WWW, pięknie działa z php-fpm, a używanie go na produkcji to sama przyjemność. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość patrys Zgłoś post Napisano Styczeń 26, 2014 Lighttpd to przeszłość, Apache stabilny serwer uznawany za pseudo standard, a Nginx to bardzo dobry produkt pod wiele zastosowań. Zawsze można tworzyć małe tandemy i pozwolić Apache tylko uruchomić PHP w oparciu o moduł, a resztę przekazać do obsługi przez haproxy/varnish/nginx... Udostępnij ten post Link to postu Udostępnij na innych stronach
Lokator 137 Zgłoś post Napisano Styczeń 27, 2014 Dzięki chłopaki : ) | Czyli poświęcić czas na pełną naukę apache'a (jako temat produkcyjny) oraz nginx'a (jako temat indywidualny)? Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 27, 2014 Nie ma sensu poświęcać czasu na apache'a. Stracisz czas, potem zasoby serwera i czas swój oraz swoich użytkowników. Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość patrys Zgłoś post Napisano Styczeń 27, 2014 @up: czemu ? Udostępnij ten post Link to postu Udostępnij na innych stronach
krzys21 0 Zgłoś post Napisano Styczeń 27, 2014 Apache to przeszłość Tylko dla osób którzy nie mają co robić z zasobami. Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 27, 2014 @patrys - a czemu niby poświęcać czas na Apache. W każdej kategorii (oprócz obecności .htaccess) przegrywa z alternatywami. Nauka apache dla wersji produkcyjnej to nauka wszystkich parametrów, które są konfigurowalne i które przy danych warunkach mają ogromny wpływ na szybkość i płynność działania. Teraz pod cokolwiek, czy to strony statyczne, strony napisane w PHP, czy nawet streaming vod/live możesz użyć 1 serwera - nginx. Jeśli nie nginx to są G-Wan, lighttpd, thttpd. Do każdego rozwiązania da się wybrać serwer, który będzie wydajniejszy od Apache, a właśnie o wydajność jest teraz walka. Szybka strona przyciąga userów - zamulona odrzuca. Udostępnij ten post Link to postu Udostępnij na innych stronach
PrecelusMaximus 53 Zgłoś post Napisano Styczeń 27, 2014 Misiek08: prosta kwestia. Masz serwer z kilkoma kontami. Sam nie masz czasu odbierać wiadomości od klientów, że chcą konto ftp, mail itp. A nawet jeśli, uciążliwe jest logowanie i wykonywanie tego, w teorii prościej wyklikać. Stawiasz jakiś panel i jazda. DA nie współpracuje w 100% z nginx, chyba że jako proxy (lub coś się zmieniło-w temacie nie jestem). Oczywiście jak masz cały serwer pod jeden projekt, to problem znika, ale jeśli masz na nim kilkanaście projektów, sprawa taka prosta nie jest. Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 27, 2014 Są już panele, które wspierają nginx'a. Teoretycznie nie da się ich jeszcze wykorzystać pod hosting współdzielony, dla wielu klientów. O ile nie martwiłbym się tym co napisałeś, czyli kontami mail i ftp, bo napisanie do nich panelu zamknęło by się w kwocie 3-4x większej niż koszt DA. Gorzej jest z tym, że większość systemów używa tego nieszczęsnego .htaccess. Dopóki mamy takich userów nie możemy sobie pozwolić na niewspieranie tej funkcji, bo będziemy musieli przepisywać ludziom regułki lub po prostu puścić dla nich Apache przez reverse proxy. Temat brzmi "wydajne serwery www", więc nie patrzymy tutaj wg mnie na hostingi współdzielone tylko na serwery, które można wykorzystać przy projekcie w taki sposób, żeby maksymalnie wykorzystać zasoby. Udostępnij ten post Link to postu Udostępnij na innych stronach
PrecelusMaximus 53 Zgłoś post Napisano Styczeń 27, 2014 Fakt z tym się zgodzę. Ale, sam napisałem że apache to strata czasu... W tym przypadku to nie jest strata czasu. Zapomniałem oczywiście o apachowych regułkach do mod_rewrite Ja akurat używałem proxiaka, bo wydał się prostszy i szybszy a wydajność skoczyła o 20-40%. Tak z ciekawości, nie ma skrypty do konwersji? Czasem wystarczy dodać rewrite i samą regułkę z wyrażeniem regularnym. Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 27, 2014 Są skrypty do konwersji, jednak jak user wrzuci np. WordPress'a z .htaccessem to wtedy trzeba by napisać skrypt, który po wrzuceniu przez FTP pliku .htaccess konwertuje go na rewrite'y i dodaje do konfiguacji ngnix'a. Jest to oczywiście zestaw wybuchowy, bo trzeba by do tego napisać ogromną ilość walidatorów, które sprawdzą, czy regułki są bezpieczne. Brak .htaccessa można przeżyć jeżeli tylko nie uruchamia się hostingu współdzielonego. Udostępnij ten post Link to postu Udostępnij na innych stronach
Lokator 137 Zgłoś post Napisano Styczeń 27, 2014 A co jeśli stawiałbym hosting współdzielony, gdzie korzystanie z .htaccess to podstawa? Czego wtedy używać? Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Styczeń 27, 2014 Wszystko zależy od tego co masz zamiar utrzymywać.Jeżeli będzie to strona serwująca mnóstwo statyki to rzeczywiście wydajność nginx w porównaniu do apache będzie in plus.Jednak w przypadku np. forum dyskusyjnego, gdzie jednak większość obciążenia to PHP/MySQL czy dowolny inny język i baza danych to różnica w wydajności nginx vs apache 2.4 na mpm-event będzie minimalna. Zakładam, że tu i tu działać będzie php-fpm, przypominam, że w apache 2.4 mamy mod_proxy_fcgi. ; )Rzeczywiście różnica w wydajności pomiędzy mpm-prefork czy nawet mpm-worker w zestawieniu z nginx'em jest wręcz dramatyczna. Jednak w przypadku mpm-event nie wygląda to już wcale tak tragicznie. 2 Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 27, 2014 @malu - nie wygląda tragicznie, jednak nadal jest. Testowałem na swoim laptopie (i7, 8GB RAMu) i nginx ciągle był górą. Jeżeli @Lokator potrzebujesz .htaccessa to niestety nginx odpada. Wtedy zostajesz najlepiej z Apache, bo alternatywy już nie będą tak szybkie i łatwe w instalacji i konfiguracji. Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Styczeń 27, 2014 (edytowany) Wrzucę coś takiego:Na domyślnych configach w Debianie testing. Apache 2.4 mpm-event z wyłączonym .htaccess Server Software: nginx/1.4.4 Server Hostname: 37.28.155.204 Server Port: 81 Document Path: / Document Length: 192 bytes Concurrency Level: 10000 Time taken for tests: 12.953 seconds Complete requests: 100000 Failed requests: 18962 (Connect: 0, Receive: 0, Length: 18962, Exceptions: 0) Write errors: 0 Non-2xx responses: 81038 Total transferred: 36342910 bytes HTML transferred: 18915570 bytes Requests per second: 7720.06 [#/sec] (mean) Time per request: 1295.327 [ms] (mean) Time per request: 0.130 [ms] (mean, across all concurrent requests) Transfer rate: 2739.94 [Kbytes/sec] received Server Software: Apache/2.4.6 Server Hostname: 37.28.155.204 Server Port: 80 Document Path: / Document Length: 177 bytes Concurrency Level: 10000 Time taken for tests: 17.581 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Total transferred: 42300000 bytes HTML transferred: 17700000 bytes Requests per second: 5688.10 [#/sec] (mean) Time per request: 1758.055 [ms] (mean) Time per request: 0.176 [ms] (mean, across all concurrent requests) Transfer rate: 2349.68 [Kbytes/sec] received Apache 2.4 z nieco zoptymalizowaną konfiguracją: Server Software: Apache/2.4.6 Server Hostname: 37.28.155.204 Server Port: 80 Document Path: / Document Length: 177 bytes Concurrency Level: 10000 Time taken for tests: 13.552 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Total transferred: 42300000 bytes HTML transferred: 17700000 bytes Requests per second: 7379.00 [#/sec] (mean) Time per request: 1355.197 [ms] (mean) Time per request: 0.136 [ms] (mean, across all concurrent requests) Transfer rate: 3048.16 [Kbytes/sec] received A tu wynik z włączonym .htaccess po optymalizacji: Server Software: Apache/2.4.6 Server Hostname: 37.28.155.204 Server Port: 80 Document Path: / Document Length: 177 bytes Concurrency Level: 10000 Time taken for tests: 14.160 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Total transferred: 42300000 bytes HTML transferred: 17700000 bytes Requests per second: 7062.32 [#/sec] (mean) Time per request: 1415.965 [ms] (mean) Time per request: 0.142 [ms] (mean, across all concurrent requests) Transfer rate: 2917.35 [Kbytes/sec] received Badałem kilkukrotnie, aby przekonać się, że wyniki wychodzą circa podobne. ; ) Oczywiście ten sam rootdir. Ten sam serwer, o tych samych parametrach, serwery uruchomione na innych portach. Edytowano Styczeń 27, 2014 przez malu (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 27, 2014 (edytowany) Testowałeś plik statyczny? Niestety lapka mam wyłączonego, więc test na VPS #1 w BH: Server Software: nginx/1.4.4 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 4 bytes Concurrency Level: 100 Time taken for tests: 0.909 seconds Complete requests: 10000 Failed requests: 0 Write errors: 0 Total transferred: 2320000 bytes HTML transferred: 40000 bytes Requests per second: 11005.70 [#/sec] (mean) Time per request: 9.086 [ms] (mean) Time per request: 0.091 [ms] (mean, across all concurrent requests) Transfer rate: 2493.48 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 3 1.7 3 8 Processing: 1 6 1.5 6 13 Waiting: 0 4 1.5 4 8 Total: 5 9 1.4 9 15 Percentage of the requests served within a certain time (ms) 50% 9 66% 9 75% 10 80% 10 90% 11 95% 12 98% 12 99% 13 100% 15 (longest request) Edytowano Styczeń 27, 2014 przez Misiek08 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Styczeń 27, 2014 Tak, mały plik statyczny. Domyślny index.html od apache w debianie. ; )Zerknij na moje wartości:Concurrency Level:Complete requests: Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Styczeń 27, 2014 (edytowany) Sorki, na 1 rdzeniowym serwerku nie chciałem dawać takiego concurrency. Powiedz mi jakie masz parametry albo puść tam u siebie nginx'a. Ja mogę jutro podrzucić z lapka testy. Dodatkowo pokaż komendę jaką uruchamiałeś i testy dysku i 1000 innych rzeczy. Jutro odpalę test na i7, plik z ramu lub nginx-lua i wtedy będzie 20k requestów. Dodając keepalive mam 30-40k/s, usuwam linijkę i wygrałem. Edytowano Styczeń 27, 2014 przez Misiek08 (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Styczeń 27, 2014 W pierwszym teście, który podesłałem jest nginx. ; )Co do parametrów, myślę, że to bez większego znaczenia - wszystkie były wykonywane na tym samym serwerze. Co do wydajności macierzy to tam siedzi 8 dyskowa macierz SSD w Raid10 HW.3 następne to apache 2.4 odpowiednio:-domyślny config bez .htaccess-zoptyamalizowany config bez .htaccess-zoptymalizowany config z .htaccess Udostępnij ten post Link to postu Udostępnij na innych stronach
elcct 159 Zgłoś post Napisano Styczeń 28, 2014 Mały plik statyczny i tak będzie serwowany z RAM, więc dyski to sprawa bez znaczenia w takim teście. Jeśli chodzi o serwer www, ja korzystam z nginx - według mnie jest dużo łatwiejszy w konfiguracji niż Apache. Co do wydajności - uważam, że jest bardzo dobra i nie miałem potrzeby rozglądania się za innym serwerem. Kiedyś korzystałem z lighttpd, ale niestety był bardzo niestabilny przy dużym obciążeniu, więc sobie go podarowałem. Udostępnij ten post Link to postu Udostępnij na innych stronach