Procesy pracownicze są sposobem na segmentację realizacji witryny w wielu systemach exe. Robisz to z kilku powodów, jeden z nich, gdy jeden z pracowników zostaje zepsuł się przez problemy z uruchomieniem, nie zabiera innych. Na przykład, jeśli pojawi się żądanie html, które powoduje, że proces jest uruchamiany w nic, wtedy tylko inne żądania, które są obsługiwane przez ten jeden procesor roboczy, zostają zabite. Innym przykładem jest to, że jedno żądanie może spowodować blokowanie innych wątków obsługiwanych przez tego samego pracownika.
Jeśli chodzi o liczbę potrzebną, wykonaj test obciążenia. Hit aplikacji mocno i zobacz, co dzieje się tylko z jednym. Następnie dodaj trochę więcej i uderz jeszcze raz. W pewnym momencie osiągniesz punkt naprawdę nasycający sieć komputerów, dysk, procesor i pamięć RAM. Wtedy wiesz, że masz właściwą równowagę.
Nawiasem mówiąc, można kontrolować liczbę wątków używanych na proces roboczy za pomocą pliku machine.config. Uważam, że kluczem jest maxWorkerThreads.
Teraz, uwaga, jeśli używasz sesji, stan sesji nie jest dzielony między procesy robocze. Ogólnie zalecam unikanie sesji, ale warto o tym pamiętać.
Dla wszystkich celów i celów każdy proces roboczy może być traktowany jako oddzielny serwer WWW. Tylko że działają na tym samym polu.
Nie byłem pewien, czy byłoby to bardziej odpowiednie tutaj, czy na serwerze ServerFault, daj mi znać, jeśli zrobiłem zły wybór, a ja to przeniesię. –
Śmiało i zapytaj w obu miejscach. Myślę, że twoje pytanie jest tutaj istotne. Specyfika wdrożenia ASP.Net często wchodzi w zakres specjalizacji programisty, zwłaszcza w zakresie optymalizacji aplikacji. – DOK
Zgadzam się z DOK. Oba miejsca są odpowiednie. Dev są często tymi, którzy muszą powiedzieć użytkownikom sieci, jak skonfigurować serwer. Z tego powodu muszą mieć te informacje. – NotMe