Chciałbym zoptymalizować konfigurację nginx w instancji EC2. Celem jest obsługiwanie jak największej liczby jednoczesnych żądań użytkowników w aplikacjach szyny / jednorożca
Specyfikacje instancji
vCPU(s): 2
ECU: 6.5
MEMORY: 17.1 GB
Obecnie konfiguracja:
worker_processes = 4
worker_connections = 12288
Raport narzędzi monitorowania:
Memory usage: Around 80%
CPU usage: Around 20%
Czy możliwe jest osiągnięcie lepszej wydajności w nginx dzięki dostępnemu procesorowi i pamięci? Z góry dziękuję.
Odpowiedzi:
2 dla odpowiedzi № 1Ogólna zasada, którą zwykle stosuję w przypadku konfiguracji jednorożca nginx + jest następująca:
Procesy robocze Nginx = liczba rdzeni
Nginx worker connections = Naprawdę duża liczba (10000+). Zależy to od twojego czasu życia, ale warto mieć dużo dostępnych połączeń, jeśli tego potrzebujesz.
Procesy robocze jednorożca: minimalna liczba rdzeni. Mam tendencję do zwiększania tego, jeśli procesy są stosunkowo lekkie (pozostawiając dużo dostępnej pamięci RAM).
Trochę trudno jest zrozumieć, ile rdzeni masz w rzeczywistości dostęp do instancji EC2, więc jeśli chodzi o to, to jest trochę bardziej strojone na podstawie prób i błędów.