Dokumentacja nginx mówi
max_clients = worker_processes * worker_connections
Ale w jaki sposób keepalive czynnikiem do tego? Mam konfigurację konfiguracji z 2 procesami worker_processes i 8192 employee_connections; to oznacza, że teoretycznie mogę obsłużyć maksymalnie 16384 równoczesnych połączeń. Równoczesne wypychanie 16384 strumieni danych jest ogromne, ale jeśli mam 60 sekund keepalive_timeout, to z każdym klientem pracującym nad połączeniem przez 1 minutę ta liczba ma zupełnie inne znaczenie. Który to jest?
Połączona z tym wszystkim jest zmienna $ connection, która może być używana z dyrektywą log_format. Zdefiniowałem następujący format dziennika, aby przeanalizować wydajność serwera:
log_format perf '$request_time $time_local $body_bytes_sent*$gzip_ratio $connection $pipe $status $request_uri';
Ta zmienna połączenia $ zawiera około 11-12 milionów połączeń! Nie jestem matematykiem, ale oczywiście liczba ta jest znacznie wyższa niż worker_processes * employee_connections. Więc co ma reprezentować?
W skrócie, staram się dowiedzieć, jak ustalić dobrą wartość dla worker_connection.
Licznik! Teraz, kiedy to mówisz, widzę wzór. Dziękuję za odpowiedź na tak niejasne pytanie. – Daniel