Wpis z mikrobloga

Może rozwinę... ( ͡° ͜ʖ ͡°)

Django jest w pełni synchroniczne więc potrzebujesz jednego wątku na połączenie.

W sytuacji, gdzie asynchroniczne serwery używają event loop'a, django używa puli wątków, więc każdy wątek pracuje dopóki określony request się nie skończy.

Nie da się powiedziec, ile dany serwer/aplikacja obsłuży. Jeżeli przeciętny request zajmuje 100ms, wtedy nawet pojedyńczy wątek obsłuży 10 RPS(requests-per-second).
I teraz, jeżeli pojedyńczy request zajmuje 100ms, a 90ms
@pepedros: 100k/mc to jest 3333/dzień. Zakładając ruch tylko przez 8 godzin dziennie, to wychodzi ≈400 wejść na minutę, czyli 7 na sekundę.

To brzmi jak nic ;)

Odpowiednio ustawisz nagłówki cache'ujące i będzie śmigać. Przy takim ruchu Django ustawiasz na 16 wątków, a pliki statyczne podaje serwer webowy.

@Lunatik: W PHP też potrzebujesz jednego wątku na połączenie ;) Zarówno w mod_php, php-fpm jak i uwsgi.
@Lunatik: true, ale jeszcze w zaleźności co to za "portal", szablony możesz cachować, tak samo jak zapytania do db i może się okzać że to co zjada najwięcej, jest nieistotne ;)
jeżeli pojedyńczy request zajmuje 100ms, a 90ms z tego spędza w oczekiwaniu na bazę danych


@Lunatik: no jednak zwykle tak jest, że to baza i sieć są wąskim gardłem. A jeśli kod wykonuje się za długo, to można rozważyć na przykład przeniesienie do asynchronicznych tasków.

Ogólnie w web devie poza skrajnymi przypadkami czas wykonywania kodu nie jest problemem.

No, chyba, że aplikacja robi jakieś #!$%@? rzeczy i inicjalizuje miljon instancji modelu