Porównanie wydajności usług IIS + ASP.NET (NGINX + FastCGI + Mono lub XSP)?
Ile żądań może obsłużyć każdy? Ile pamięci RAM potrzebujesz?
O ile pamiętam, FastCGI to otwarte zainicjowane procesy, każdy może obsłużyć jedno żądanie.
A co z wielowątkowością?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
7 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
ASP.Net wykorzystuje architekturę wielowątkową, która jest w dużej mierze częścią samego serwera WWW. Zmienne statyczne zachowują swoją wartość między żądaniami i między użytkownikami. W tym miejscu ASP.Net uzyskuje maksymalną przewagę szybkości. Pamięć współdzielona jest przechowywana w ramach każdego indywidualnego procesu i między wątkami. Poszczególne procesy nie współużytkują pamięci. Dlatego w przypadku skalowania poza pojedynczy serwer traci się większość tej korzyści.
PHP jest zbudowany w starym stylu CGI, w którym każde żądanie jest pustą tablicą. Oznacza to, że wszelkie ogólne informacje muszą zostać odzyskane ze współużytkowanej pamięci masowej lub całkowicie odzyskane. PHP NIE jest wolny, jest inny. Większość podstawowych operacji w PHP to wywoływanie modułów napisanych w C, dzięki czemu działają błyskawicznie. Sam PHP nie jest tak szybki jak język skompilowany, ale w żadnym wypadku nie jest wolniejszy. Istnieją (bardzo popularne) moduły PHP, które buforują skompilowane (w pamięci) wersje kodu i mogą poprawić wydajność od 4 do 10 razy.
PHP istnieje od dawna i istnieje wiele rozwiązań dla jego stylu CGI. xcache oferuje magazyn wartości bardzo podobny do zmiennych statycznych ASP.Net. Memcache oferuje nieco wolniejsze, ale lepsze rozwiązanie do skalowania (między fizycznymi serwerami) dla trwałych zmiennych współdzielonych.
ASP.Net oferuje dużo więcej formalizmu i struktury. Ale źli programiści mogą zepsuć każdy język. Jeśli wybierzesz ASP.Net, powinieneś zapoznać się z niektórymi świetnymi bibliotekami firm innych niż Microsoft do programowania. (np. NHIbernate & amp;
http://www.castleproject.org/
http://www.castleproject.org/
)
Moje osobiste preferencje (jeśli nie płacą mi za inne czynności) to PHP. Chociaż wymaga zmniejszenia szybkości, jest łatwiejszy do opracowania i mniej trudny do skalowania (nawet jeśli wymaga więcej serwerów PHP niż .Net). Serwery są znacznie tańsze niż programiści.
W każdym razie dowolna aplikacja internetowa & > 2.0 będzie powiązany z danymi, a konfiguracja bazy danych będzie miała znacznie większy wpływ na wydajność niż wybór języka.
Anonimowy użytkownik
Potwierdzenie od:
używanie ławki Apache z innej maszyny Linux w tej samej sieci (ab -n 1000 -c 100)
Jestem pewien, że możesz dostosować opcje itp. Ale jeśli brakuje mi czegoś prostego, usługi IIS wydają się być wielokrotnie szybsze dzięki mvc asp.net.
Sam program był w większości pusty, wystarczyło jedno słowo.
To nie jest najlepszy test iz pewnością nie jest to coś, co dałbym swojemu szefowi. Podejrzewam, że mono będzie lepiej wyświetlać się z nginx lub lighttpd, ale nie mam ich teraz.
Anonimowy użytkownik
Potwierdzenie od:
Możesz dość łatwo uruchomić testy porównawcze, ale XSP nie jest przeznaczony do środowisk produkcyjnych. Zgłosiliśmy błąd, który czasami powodował awarię XSP, którego nie zamierzają naprawić (oczywiście z powodu głębokiej zmiany architektury). W końcu po prostu zawinęliśmy i ponownie uruchomiliśmy proces, gdy umarł, ale powinieneś wiedzieć, że te dwa (XSP i IIS) to bardzo różne bestie.
Jeśli korzystasz z systemu Windows, użyj usług IIS. IIS7 wcale nie jest taki zły.
Anonimowy użytkownik
Potwierdzenie od:
StockTrader
http://msdn.microsoft.com/en-u ... px... Niezupełnie test internetowy. W każdym razie działał bardzo dobrze z usługami IIS, przepływami pracy i kodem .NET.
7 lub 8 lat temu testy obciążenia sieci były bardziej aktywne. Ale w pewnym momencie wydawało się, że wydajność była tak dobra, że na jednym standardowym serwerze Intela na dużą skalę używasz Linuksa + ??? lub Windows + .NET, otrzymujesz naprawdę dobrą wydajność. (Pod warunkiem, że aplikacja jest rozsądnie zaprojektowana).
Nie mogę jednak wypowiadać się na temat PHP i FastCGI.
I nie znam nikogo, kto porównuje Linux + Mono + XSP z Windows + .NET + ASPNET na tym samym sprzęcie.
Anonimowy użytkownik
Potwierdzenie od:
Istnieją tutaj świetne testy dla usług IIS i nginx:
(a także Apache, Cherokee, G-WAN, Lighttpd, Ulib itp.)
Na
Linux
:
http://gwan.ch/en_linux.html
http://gwan.ch/en_linux.html
Na
Windows
:
http://gwan.ch/en_windows.html
http://gwan.ch/en_windows.html
Przez
PHP, Java i C #
:
http://gwan.ch/
http://gwan.ch/
Nigdzie indziej nie widziałem tak wyraźnych porównań. Kod źródłowy testu (w PHP, Java, C #) jest również dostępny tutaj:
http://gwan.ch/source/
http://gwan.ch/source/
Mam nadzieję, że to pomoże.
Anonimowy użytkownik
Potwierdzenie od:
Ponieważ Linux jest tańszy i lubię centos, próbowałem przejść na tryb mono z jednym środowiskiem testowym i zauważyłem pewną zmianę wydajności. Może nie wiedziałem, jak poprawnie skonfigurować środowisko.
Moje osobiste doświadczenie teraz:
Jeśli chcę stworzyć dowolną stronę internetową z php, instaluję ją na moim serwerze Linux (Centos6, nginx, php-fpm, mariadb, apc cache)
Kiedy muszę coś zrobić w C #, instaluję to na Windows Server 2008, mniej bólu głowy, większa niezawodność i wsparcie.
Jedynym minusem Microsoft Server jest cena. Jeśli jesteś małym programistą, minimalne wymagania sprzętowe dla systemu MS są znacznie niższe niż dla komputera z systemem Linux.
Anonimowy użytkownik
Potwierdzenie od:
Pochodzę z Linuksa, a teraz pracuję dla Windows Corporation.
Mogę tylko powiedzieć, że ta zmiana była najgorszą decyzją, jaką kiedykolwiek podjąłem.
Nie tylko będziesz musiał pracować na notorycznie niestabilnej platformie, ale będziesz miał również trudności z pisaniem instalatorów (instalator Windows nie może ładować łańcuchowo, co może zrobić każdy instalator Linuksa, aplikacje nie mogą się odinstalować, więc nie ma prawdziwych, samoczynnie aktualizujących się aplikacji) trzeba napisać sam aktualizator, podczas gdy w Linuksie apt zajmuje się wszystkim). Przełączasz się także na platformę, na której domyślną przeglądarką jest IE.
Mogę tylko powiedzieć, że spędzam dni na tworzeniu aplikacji internetowych kompatybilnych z IE, gdzie potrzebujesz tylko godzin dla Linuksa, ponieważ nie musisz naprawiać wszystkich tych błędów przeglądarki BASIC IE za pomocą TWOJEGO KODU, ponieważ IE nie działa na Linuksie może, ale to nielegalne) ...