Dodaj równoczesny budżet pamięci
Zacznij od nakładających się procesów, a nie od ich średnich w spoczynku. Przykładowy arkusz 4 GB mógłby zarezerwować 700 MiB na narzędzia hosta, 900 MiB na procesy API, 1,200 MiB na bazę danych, 500 MiB na jeden worker i 700 MiB na niepewność: łącznie 4,000 MiB. To niemal wyczerpuje nominalny profil i pozostawia niewiele pewności na większe nakładanie się wydań.
Oszacuj zapotrzebowanie CPU na podstawie zmierzonej pracy
Zmierz czas CPU dla jednego reprezentatywnego żądania lub zadania, a następnie pomnóż przez szczytowe tempo ukończeń. Na przykład 25 ms czasu CPU × 20 żądań na sekundę = 500 ms CPU na sekundę, czyli średnio 0.5 rdzenia. Powtórz z aktywnym realistycznym workerem i sprawdź szczyty; średnie ukrywają skoki, planowanie i oczekiwania na bazę danych.
Oddziel sygnały ograniczeń
| Zaobserwowany sygnał | Prawdopodobna następna kontrola |
|---|---|
| Wysokie CPU z gotową do uruchomienia pracą | Profiluj ścieżkę krytyczną, a następnie porównaj więcej CPU. |
| Presja pamięci lub zakończenie procesu | Zmniejsz nakładanie się lub dodaj zmierzony RAM. |
| Niskie CPU przy wolnych żądaniach | Sprawdź bazę danych, pulę i zewnętrzne oczekiwania. |
| Wiek kolejki rośnie wraz ze wzrostem liczby workerów | Zmniejsz współbieżność i sprawdź wspólną zależność. |
Podejmij decyzję o zasobach
Wybierz więcej CPU tylko wtedy, gdy profilowanie pokazuje utrzymujące się przeciążenie obliczeniowe. Wybierz więcej RAM, gdy równoczesny zestaw roboczy nie ma rezerwy. Zmniejsz współbieżność, gdy równoległa praca szkodzi opóźnieniu API lub użytecznemu wskaźnikowi ukończeń. Zapisz pomiar wyzwalający, a następnie powtórz to samo obciążenie po zmianie jednej zmiennej.