Sonntagsausgabe · Teil 12
Was langsame Software wirklich kostet
Diese Woche habe ich unsere eigene Archivsuche gemessen. Zwei Sekunden pro Anfrage. Das hatte mich vorher nie gestört, und genau das ist das Interessante daran.
Zwei Sekunden sind zu kurz, um sich zu beschweren, und zu lang, um nichts zu kosten. Sie sind der klassische Fall von Aufwand, der nirgends auftaucht: nicht in der Buchhaltung, nicht im Projektbericht, nicht im Gespräch mit dem IT-Partner. Er verteilt sich in Häppchen über den Tag, und Häppchen bucht niemand.
Diese Sonntagsausgabe rechnet den Fall einmal durch. Mit den Zahlen, die ich diese Woche selbst gemessen habe.
Die harmlose Hälfte: die Rechnung in Stunden
Nimm zehn Mitarbeiter. Jeder sucht dreissig Mal am Tag etwas — im Archiv, im CRM, in der Ablage. Jede Suche dauert zwei Sekunden länger als nötig.
Das sind zehn Minuten am Tag. Vierzig Stunden im Jahr. Eine volle Arbeitswoche, die niemand bemerkt, weil sie in Zwei-Sekunden-Scheiben anfällt.
Die Zahl ist unspektakulär, und sie ist trotzdem nützlich: Sie macht aus einem Gefühl eine Grösse. «Die Software ist halt langsam» lässt sich nicht budgetieren. «Vierzig Stunden im Jahr» schon.
Die teure Hälfte: was niemand aufschreibt
Die zweite Rechnung ist grösser und steht in keiner Tabelle. Sie beginnt in dem Moment, in dem Suchen anstrengend wird.
Dann ruft die Kollegin lieber an, statt nachzusehen. Dann führt der Kollege seine eigene Liste weiter, weil die im System zu lange lädt. Dann entsteht neben dem offiziellen System ein zweites, inoffizielles: Excel auf dem Laptop, Notizen im Mailprogramm, eine Ablage auf dem Desktop.
Diese Schattenablagen sind die eigentlichen Kosten. Sie sind nicht gesichert, nicht durchsuchbar, nicht übergabefähig. Wer das Haus verlässt, nimmt sie mit. Und sie entstehen nicht aus Nachlässigkeit, sondern als vernünftige Reaktion auf ein System, das langsamer ist als der eigene Kopf.
Der Zusammenhang ist unangenehm einfach: Je länger die Suche dauert, desto weniger wird gesucht. Und je weniger gesucht wird, desto weniger ist das System wert, das die Daten hält.
Fall eins: eine Einstellung, Faktor 15
Zurück zu den zwei Sekunden. Die Ursache war keine Überlastung, kein zu kleiner Server und kein schlecht geschriebenes Programm.
Die Datenbank lief mit den Werkseinstellungen aus dem Installationspaket. Der Speicher, den sie sich für häufige Zugriffe merken darf, stand auf 128 Megabyte. Die Register, die sie dafür braucht, sind zusammen 8’247 Megabyte gross. Sie hat also bei jeder Anfrage von der Festplatte gelesen, was sie längst hätte im Kopf behalten können.
Eine Zeile geändert, Dienst neu gestartet. Aus 2’025 Millisekunden wurden 90 bis 136. Faktor 15, ohne neue Hardware, ohne eine Zeile Programmcode.
Der Punkt ist nicht, dass da jemand geschlampt hat. Werkseinstellungen sind so gewählt, dass die Software auf jedem Gerät startet — vom Entwickler-Laptop bis zum grossen Server. Sie sind ein Kompromiss für alle und damit für niemanden richtig. Die Frage ist nur, ob jemand nach der Installation noch einmal hinschaut.
Fall zwei: die Rechnung, die sich durch Nachrechnen erledigt hat
Der zweite Befund derselben Woche: Uns fehlte Arbeitsspeicher. Das Angebot für die nächstgrössere Maschine lag bei 138 Franken im Monat.
Der Reflex ist, das zu kaufen. Er ist nicht falsch, nur teuer — und oft die zweitbeste Antwort. Also haben wir zuerst gemessen, wer die Last eigentlich erzeugt.
Sechs Datenbanken teilten sich eine Maschine. Vier davon sind zusammen 27 Gigabyte gross und werden ein paar Mal am Tag befragt. Zwei sind zusammen 414 Megabyte klein und tragen 112 Millionen Vorgänge.
Der kleinste Posten macht die meiste Arbeit, um mehr als das Tausendfache. Und weil beide im selben Topf lagen, verdrängten sie sich gegenseitig aus dem Zwischenspeicher: Acht Gigabyte Register passen nicht in vier Gigabyte Cache, und die ständig arbeitenden kleinen Datenbanken wurden von den grossen, ruhigen immer wieder hinausgeworfen.
Die Lösung war keine Rechnung, sondern eine Trennung nach Arbeitsweise. Die grossen, selten gefragten Bestände liegen jetzt auf einer Maschine, die ohnehin läuft und Speicher übrig hat. Die kleinen, ständig arbeitenden bleiben dort, wo die Programme sind, die sie nutzen.
Kosten: null statt 138 Franken im Monat. Und in jeder Phase umkehrbar.
Fall drei: der Umzug, den niemand gemerkt hat
Bleibt die Frage, wie man so etwas verschiebt, ohne den Betrieb anzuhalten. Die übliche Antwort heisst Wartungsfenster am Sonntagabend.
Es geht auch anders, und der Trick ist alt. Zwischen die Programme und die Datenbank kommt eine Vermittlungsstelle. Ab dann sprechen alle Programme mit ihr statt direkt mit der Datenbank. Beim Umzug bekommt sie zwei Befehle: Halt, sie hält jede offene Verbindung und sammelt die Anfragen. Weiter, sie schickt sie an den neuen Ort. Für die Programme ist nichts passiert, ausser dass eine Anfrage einen Moment länger gedauert hat.
Das Entscheidende daran ist die Reihenfolge: Diese Vermittlungsstelle wird eingeführt, solange noch alles am alten Ort läuft. Dann ist der riskante Teil vorbei, bevor der Umzug überhaupt beginnt.
Und sie ist nicht nur für den einen Tag gut. Sie bündelt Verbindungen, und bei uns läuft ein Dienst, der bei jedem Aufruf eine neue öffnet. Bei 112 Millionen Vorgängen ist das der Unterschied zwischen «läuft» und «läuft gut».
Was davon für dich gilt
Du hast wahrscheinlich keine Vektordatenbank. Das macht nichts, denn keiner der drei Fälle handelt von Vektoren.
- Werkseinstellungen sind ein Kompromiss für alle. Frag deinen IT-Partner, wann er zuletzt die Einstellungen eurer wichtigsten Anwendung überprüft hat. Wenn die Antwort «bei der Installation» lautet, habt ihr vermutlich Luft.
- Miss, bevor du kaufst. Die Frage ist nie «reicht der Server», die Frage ist «wer erzeugt die Last». Das sind erstaunlich oft nicht dieselben Daten, die den Platz belegen.
- Langsam ist ein Symptom, nicht eine Eigenschaft. «Das System ist halt langsam» ist keine Diagnose. Welche Abfrage, wie lange, wie oft am Tag — das sind drei Zahlen, und sie sind an einem Nachmittag erhoben.
Und der Punkt, der über allem steht: Die teuerste Folge langsamer Software ist nicht die verlorene Zeit. Es ist die Gewohnheit, die sich darum herum bildet. Wer sechs Monate lang gelernt hat, dass Suchen sich nicht lohnt, sucht auch dann nicht mehr, wenn es wieder schnell geht.
Wie lange wartet ihr — und wie oft am Tag?