Die API wird nur gelegentlich aufgerufen und im Moment wird es nie gleichzeitige Anfragen geben. Ich möchte die Ausführung so schnell wie möglich.
Ich habe den Dienst mit den maximal verfügbaren CPU- und Speichereinstellungen (8 vCPU, 32 GB Speicher) konfiguriert, aber die Gesamtausführungszeit der API hat sich im Vergleich zu kleineren Konfigurationen nicht verbessert. Den Metriken in Cloud Monitoring zufolge bleiben sowohl die CPU-Auslastung als auch die Speichernutzung konstant niedrig (ca. 10–20 %), auch wenn der Prozess CPU-intensiv sein sollte. Dies lässt mich vermuten, dass der Container nicht die volle CPU-Auslastung erhält oder dass es möglicherweise zu einer Drosselung oder Konfigurationseinschränkung der Leistung kommt.
Oder übersehe ich etwas völlig?
Erwartetes Verhalten:
- Bei einer größeren CPU- und Speicherkonfiguration sollte der API-Prozess schneller ausgeführt werden und proportional mehr CPU-Ressourcen nutzen (idealerweise 80–90 % CPU-Auslastung bei intensiver Berechnung).
- Plattform: Cloud Run (vollständig verwaltet) – Parallelität: 1 (um die Berechnung pro Anfrage zu isolieren)
- CPU-Zuweisung: 8 vCPUs – Speicherzuweisung: 32 GB
- Ausführungszeitlimit: 60 Minuten
- Anfragedauer: ~30–45 Minuten
- CPU-Auslastung: 10–20 % Fragen:
- Begrenzt Cloud Run die CPU-Auslastung während der Anforderungsverarbeitung, selbst wenn es mit maximaler vCPU konfiguriert ist?
- Gibt es ein besseres Setup, um die volle CPU-Auslastung für hohe Rechenlasten sicherzustellen?
- Gibt es empfohlene Konfigurationen oder Muster für CPU-gebundene Arbeitslasten, die große Berechnungen durchführen müssen? die 60-Minuten-Grenze?
- Der Code führt Multithread- oder parallelisierte Berechnungen in Python aus.
- Kein E/A-Engpass beobachtet.
- Mit verschiedenen Maschinenkonfigurationen getestet – die Leistung ist größtenteils unverändert.
Mobile version