Der Mythos der E/A-gebundenen Rails-Anwendung

2025-01-25

Es ist weit verbreitet, dass Rails-Anwendungen inhärent E/A-gebunden sind, wobei die Datenbank der Hauptleistungsengpass ist und die Ruby-Performance weniger wichtig ist. Dieser Beitrag widerlegt diese Annahme. Obwohl die Datenbank tatsächlich ein Skalierungsproblem darstellt, argumentiert der Autor, dass dies nicht bedeutet, dass die Anwendung den größten Teil ihrer Zeit mit dem Warten auf E/A verbringt. Die Analyse der Leistungsverbesserungen von YJIT und gängiger Leistungsprobleme (wie fehlende Datenbankindizes) deutet darauf hin, dass viele Rails-Anwendungen tatsächlich CPU-gebunden sind. Der Beitrag hebt die Verwechslung zwischen CPU-Starvation und E/A-Wartezeiten hervor und betont, dass die Wahl des richtigen Ausführungsmodells (asynchron, mehrthreaded oder prozessbasiert) vom E/A-CPU-Verhältnis der Anwendung abhängt. Der Autor plädiert für mehr Aufmerksamkeit auf die Ruby-Performance und weist auf Optimierungsmöglichkeiten innerhalb von Rails selbst hin.

Entwicklung