Lasttest-Planung

Skalierbarkeit und Performance-Analyse für Kurz-URL Dienste

Visualisierung eines Lasttests für einen Kurz-URL-Dienst mit hoher Auslastung

Warum Lasttests für Kurz-URLs?

Ein Kurz-URL-Dienst (wie bit.ly oder tinyurl) hat ein spezifisches Lastprofil: High Read / Low Write. Während nur gelegentlich neue Links erstellt werden, erfolgt der Zugriff auf bestehende Links oft massenhaft und gleichzeitig.

1. Test-Szenarien

2. Kritische Metriken (KPIs)

Beispiel: Lasttest-Skript (k6)

Hier ist ein einfaches JavaScript-Snippet für das Tool k6, um eine Umleitung zu testen:


import http from 'k6/http';
import { sleep, check } from 'k6';

export let options = {
    vus: 100, // 100 gleichzeitige Nutzer
    duration: '30s',
};

export default function () {
    // Beispielhafte Kurz-URL
    let res = http.get('http://api.kurz.url/s/xyz123');
    check(res, {
        'ist Status 301 oder 302': (r) => r.status === 301 || r.status === 302,
        'Antwortzeit ist schnell': (r) => r.timings.duration < 200,
    });
    sleep(0.1);
}
    

Erwartete Ergebnisse & Schwellenwerte

Metrik Zielwert (Gut) Kritisch (Schlecht)
Antwortzeit (p95) < 50ms > 200ms
Fehlerrate < 0.01% > 1%
CPU Last (Server) 40-60% > 90%