CPU- und I/O-begrenzte Arbeit
Problem
Ihr Bericht braucht zehn Sekunden, um zu generieren. Sie geben der Anwendung mehr CPU-Kapazität, aber der Bericht dauert immer noch zehn Sekunden. Das Upgrade hat die Verzögerung nicht behoben.
Lösung — CPU- und I/O-begrenzte Arbeit
Arbeit ist CPU-gebunden, wenn die Berechnung ihren Fortschritt einschränkt: Komprimieren einer Datei, Größenänderung von Bildern oder Berechnung einer Prognose. Ein schnellerer Prozessor, ein besserer Algorithmus oder eine parallele Ausführung über verfügbare Kerne hinweg kann helfen. Zusätzliche Kerne helfen nur, wenn die Arbeit sie verwenden kann.
Arbeit ist I/O-gebunden, wenn der Fortschritt hauptsächlich von der Eingabe oder Ausgabe abhängt: Lesen einer Festplatte, Empfangen von Netzwerkdaten oder Warten auf eine Datenbankantwort. Wenn der Bericht neun Sekunden auf seine Abfrage wartet, ändert sich ein schnellerer Anwendungsprozessor wenig. Verbessern Sie zuerst die Abfrage oder den Datenzugriff. Asynchrone I/O können es den Mitarbeitern ermöglichen, andere Anfragen während des Wartens zu bearbeiten; die Datenbank antwortet nicht früher.
Gemessen werden CPU-Zeit, Auslastung einzelner Kerne und Wartezeit. Ein niedriger CPU-Durchschnitt kann einen voll ausgelasteten Kern verbergen. Der Engpass einer Anfrage kann sich außerdem ändern: Zunächst wartet sie auf Daten, danach folgt eine aufwendige Berechnung.
Kerngedanke: Verbesserung der Ressource, die den Fortschritt einschränkt; mehr Rechenleistung kann nicht jede Art von Warten entfernen.