Czy po publikacji aplikacji za pomocą komendy dotnet publish używa ona nadal IIS EXPRESS czy już innego serwera?

0

Czy po publikacji aplikacji za pomocą komendy dotnet publish -c release -r "platforma" aplikacja używa IIS EXPRESS czy już serwera takiego jak przy produkcji?

Pytam bo widzę że średni czas requestów na aplikacji po publish jest znacznie mniejszy.

0

Domyślnie używa Kestrela (tj. wbudowanego serwera) - ale wpływ na szybkość może też mieć konfiguracja debug/release.

Kestrel nie musi być produkcyjny, tak btw ;)

0

A przed publikacją używa IIS express?

0
jacek.placek napisał(a):

A przed publikacją używa IIS express?

Tak używa.
Na windowsie udało mi się odpalic aplikacje w full iis, ale nie wiem jak to zrobić teraz na linuxie ;d

0

A Kestrel + nginx nie mogą być?

0

Znaczy chodzi mi o to czy jak uruchomie z poziomu visual code kod w .net core mvc na linuxie, to czy ten kod używa coś na styl IIS EXPRESS, czy FULL ISS z windowsa?
I tak samo jak w przypadku jak wezme opublikuje to za pomoca dotnet publish -c release -r na linuxa, to czy ten kod używa coś na styl IIS EXPRESS, czy FULL ISS z windowsa?

Chce to w jakiś sposób porównać ;d

0

Nie, nie używa.

Jak odpalisz z vs code na windowsie to też chyba wtedy nie używa iISa?

0
some_ONE napisał(a):

Nie, nie używa.

Jak odpalisz z vs code na windowsie to też chyba wtedy nie używa iISa?

Na windowsie używam visual studio code
Tylko dziwne, bo widze przepustowość okolo 150 s, natomiast na full iis windows ponad 1000 przepustowosc, a na iis express też około 150 ;/
Myśle, że jednak ta przepustowość jest znacząca i nie wiem do którego to powinienem porównać, czy bardziej iis express czy iss

0

No to coś masz skopane, bo spodziewałbym się odwrotnych rezultatów, tzn. że apka może być wolniejsza za IISem, ale nie odwrotnie (chociaż to też zależy od konfiguracji).

W obu przypadkach targetujesz .net core?
Jakiego modelu hostowania używasz (inprocess/outofprocess)?

Różnica pomiędzy IIS, a IIS Express też jakaś duża, ale w sumie IIS Express jest czysto do celów deweloperskich to wszystko możliwe. Może pełny IIS ma też jakieś moduły cachujące?

0
some_ONE napisał(a):

No to coś masz skopane, bo spodziewałbym się odwrotnych rezultatów, tzn. że apka może być wolniejsza za IISem, ale nie odwrotnie (chociaż to też zależy od konfiguracji).

W obu przypadkach targetujesz .net core?
Jakiego modelu hostowania używasz (inprocess/outofprocess)?

Różnica pomiędzy IIS, a IIS Express też jakaś duża, ale w sumie IIS Express jest czysto do celów deweloperskich to wszystko możliwe. Może pełny IIS ma też jakieś moduły cachujące?

Uzywam out in process. IIapke odpalam w trybie debug na iis express, natomiast na full iis wygenerowalem konfiguracje release to pewnie dlatego :P
Nie wiem dlaczego na tym linuxie takie cos wyszlo, nie wiem jak naprawic ;s
Targetujesz .net core? Po prostu uzywam tego jak wygenerowalo mi, nie bardzo rozumiem tego targeta
Bardziej mnie zastanawia czy na linuxie też coś na styll "full iisa" mam stawiać?

0

Jak chcesz porównywać windows vs linux to moim zdaniem nie powinieneś używać żadnego serwera reverse proxy (IIS/nginx/haproxy itp.), a zrobić tylko porównanie na Kestrelu.

Jak na linuxie użyjesz czegoś na styl IIS, to będziesz testował wydajność serwerów reverse proxy, a nie apki/frameworka, bo o ile nie robisz requestów po same pliki statyczne, które serwery reverse proxy prawdopodobnie potrafią lepiej cachować (nie wiem czy Kestrel w ogóle potrafi?) to pewnie największy narzut wydajnościowy będzie właśnie po stronie takiego serwera reverse proxy.

0
some_ONE napisał(a):

Jak chcesz porównywać windows vs linux to moim zdaniem nie powinieneś używać żadnego serwera reverse proxy (IIS/nginx/haproxy itp.), a zrobić tylko porównanie na Kestrelu.

Jak na linuxie użyjesz czegoś na styl IIS, to będziesz testował wydajność serwerów reverse proxy, a nie apki/frameworka, bo o ile nie robisz requestów po same pliki statyczne, które serwery reverse proxy prawdopodobnie potrafią lepiej cachować (nie wiem czy Kestrel w ogóle potrafi?) to pewnie największy narzut wydajnościowy będzie właśnie po stronie takiego serwera reverse proxy.

Jak sprawdzić czego ja właściwie używam na linuxie po opublikowaniu na tej platformie aplikacje w corze?

0

Jak nic nie konfigurowałeś to Kestrela, to nie jest tak że apka sama odpali ci jakiś serwer reverse proxy.

0
some_ONE napisał(a):

Jak nic nie konfigurowałeś to Kestrela, to nie jest tak że apka sama odpali ci jakiś serwer reverse proxy.

Okej, a to dlaczego mam tak niską przepustowość w porównaniu do FULL IIS na windowsie?
Czy ten kestrel też ma może podział na mniejszą zabawke ? (ala IIS EXPRESS) ?

0
Pytajnikkk napisał(a):
some_ONE napisał(a):

Jak nic nie konfigurowałeś to Kestrela, to nie jest tak że apka sama odpali ci jakiś serwer reverse proxy.

Okej, a to dlaczego mam tak niską przepustowość w porównaniu do FULL IIS na windowsie?

Nie wiem, moim zdaniem nie powinno być takiej różnicy. Jak już to mniejsza, ale i tak bym się skłaniał do tego, że to raczej Kestrel powinien być szybszy od IIS nawet z modelem inprocess.
Co robi ten request na którym testujesz?

Czy ten kestrel też ma może podział na mniejszą zabawke ? (ala IIS EXPRESS) ?

Nie.

0
some_ONE napisał(a):
Pytajnikkk napisał(a):
some_ONE napisał(a):

Jak nic nie konfigurowałeś to Kestrela, to nie jest tak że apka sama odpali ci jakiś serwer reverse proxy.

Okej, a to dlaczego mam tak niską przepustowość w porównaniu do FULL IIS na windowsie?

Nie wiem, moim zdaniem nie powinno być takiej różnicy. Jak już to mniejsza, ale i tak bym się skłaniał do tego, że to raczej Kestrel powinien być szybszy od IIS nawet z modelem inprocess.
Co robi ten request na którym testujesz?

Czy ten kestrel też ma może podział na mniejszą zabawke ? (ala IIS EXPRESS) ?

Nie.

Request do strony głównej na której mam statyczne zdjęcie i tekst
Po czym mógł znaleźć przyczynę dla której jest taka mała przepustowość? (Dodam że tego linuxa mam na maszynie wirtualnej)

3

Trzeba zacząć mierzyć różne metryki pokazujące jak działa nasza aplikacja na serwerze i zobaczyć gdzie są wąskie gardła. Podstawą jest mierzenie % CPU i % RAM jeśli nie masz któregoś z nich na 100% podczas testów obciążeniowych a nie jesteś w stanie wyciągnąć wyższego wyniku to znaczy że na pewno coś jest źle. W dalszej kolejności warto się przyjrzeć jak zachowuje się pula wątków na której pracuje aplikacja, jak GC działa i jest ustawiony, jak kształtują się czasy odpowiedzi.

Pomocne może być również porównanie nagłówków odpowiedzi dotyczących: cache, kompresji, http2.

Także dobra instrumentalizacja jest podstawą tuningowania, a metryk do mierzenia jest naprawdę sporo, przykład:

title

0

Chciałem się dowiedzieć czy sam w sobie kestrel używa modułów hostowania typu: InProcess albo OutOfProcess , jeżeli tak to jakiego modulu używa defaultowo?

Ponadto nie rozumiem, dlaczego za każdym razem mam mniejsza przepustowość na linuxie na tym samym sprzecie i na tym tescie niz na windowsie w odpowiedziach requestow.
Dodatkowo przy dużej ilości wysłanych requestow nie wyskoczył żaden błąd, a w windowsie przy uzyciu FULL IIS juz dawno mialem blędy....

Dostaje też ze przy wiekszej liczbie requestow sredni czas odpowiedzi jest szybszy niz w przypadku mniejszej probki (przepustowosc podobna do mniejszej probki i bledu nie ma)

0

Żeby stwierdzić co jest nie tak jak już wcześniej pisałem potrzebna jest znajomość metryk, bez nich można tylko zgadywać.
Jeśli używasz najnowszej wersji net core 3.0 Preview 6 (dostępna od wczoraj :D), to możesz te metryki bardzo prosto dostać za pomocą:
https://github.com/dotnet/diagnostics/blob/master/documentation/dotnet-counters-instructions.md
za pomocą jednego prostego narzędzia dostajemy wszystkie najważniejsze metryki, wcześniej nie było to możliwe na linuxie:
title

1 użytkowników online, w tym zalogowanych: 0, gości: 1