LiveÖffentlich nachprüfbar

Was ein 40-€-Server leisten kann

Über 4 Millionen Unternehmen und Dutzende Millionen Datensätze. Ein einziger Server. Keine Microservices, kein Kubernetes, keine Buzzwords.

Server8 vCPU, 16 GB RAM, 40 €/Monat
DatenbankPostgreSQL 16 – 4M+ Unternehmen, Dutzende Millionen Datensätze
CacheRedis 7 – TTL pro Datentyp
LaufzeitBun + Fastify 5 – natives TypeScript

Live-Test

100 echte Abfragen, 20 gleichzeitig, gegen die Produktionsdatenbank

Drücken Sie den Button, um 100 echte Abfragen auszuführen und die Serverkapazität zu messen.

Methodik

Was wir messen

Der Kapazitätstest führt 100 echte Abfragen (Unternehmenssuche, Personensuche, CUI-Details, IBAN) durch, 20 gleichzeitig, gegen die Produktionsdatenbank mit über 4 Millionen Unternehmen, Vertretern und Dutzenden Millionen verknüpfter Datensätze. Die Schätzung der gleichzeitigen Nutzer geht davon aus, dass ein echter Nutzer durchschnittlich 1 Anfrage alle 3 Sekunden stellt (Seitenladezeit + Denkzeit).

Wie wir messen

Abfragefunktionen werden direkt auf dem Server aufgerufen (ohne HTTP-Overhead), und die Zeit wird mit performance.now() gemessen – mit Submillisekunden-Auflösung. Die Ergebnisse enthalten nur die Server-Verarbeitungszeit, nicht die Netzwerklatenz.

Formel

gleichzeitige Nutzer = Anfragen/Sek. × 3 Sek. (Durchschn. Zeit zwischen Aktionen)

Warum es relevant ist

Ein 40 €/Monat-Server mit einer gut indizierten Datenbank und Bun als Laufzeitumgebung kann Tausende gleichzeitiger Nutzer bedienen. Keine Microservices, kein Kubernetes, keine Millionen-Euro-Infrastruktur notwendig.

Was es anderswo kostet

Der gleiche Server (8 vCPU, 16 GB RAM) bei verschiedenen Anbietern – monatliche Preise ohne Rabatte

DemoANAF.ro
40/Monat
Hetzner Cloud
16/Monat
OVHcloud
26/Monat
Vultr
44/Monat
DigitalOcean
58/Monat
AWS EC2
180/Monat
Google Cloud
150/Monat
Azure
258/Monat
Hetzner Cloud: shared CPUAWS EC2: on-demandGoogle Cloud: on-demandAzure: on-demand

Hyperscaler (AWS, Google, Azure) bieten verwaltete Dienste an, aber für ein Portal mit einer gut indizierten Datenbank liefert ein einfacher VPS die gleiche Leistung zu einem Bruchteil der Kosten.

Selbst testen

Installieren Sie k6 (Open Source, einzelnes Binary) und führen Sie das Skript unten aus.

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

// 50 utilizatori virtuali, 30 secunde
export const options = {
  stages: [
    { duration: '10s', target: 50 },
    { duration: '15s', target: 50 },
    { duration: '5s', target: 0 },
  ],
};

const BASE = 'https://demoanaf.ro';
const SEARCHES = ['construct', 'transport', 'consult', 'auto', 'euro'];
const PEOPLE = ['pop', 'ion', 'maria', 'gheorghe'];
const CUIS = [33503335, 4221306, 14399840, 18189442];

function pick(arr) { return arr[Math.floor(Math.random() * arr.length)]; }

export default function () {
  const roll = Math.random();
  let res;

  if (roll < 0.4)
    res = http.get(BASE + '/api/search?q=' + pick(SEARCHES) + '&limit=10');
  else if (roll < 0.65)
    res = http.get(BASE + '/api/company/' + pick(CUIS));
  else if (roll < 0.85)
    res = http.get(BASE + '/api/search/people?q=' + pick(PEOPLE) + '&limit=10');
  else
    res = http.get(BASE + '/api/iban?q=timis');

  check(res, {
    'status 200': (r) => r.status === 200,
    'response < 500ms': (r) => r.timings.duration < 500,
  });

  sleep(0.5);
}

Ihre Ergebnisse enthalten Netzwerklatenz – unsere werden direkt auf dem Server gemessen. Das Skript verwendet 50 virtuelle Nutzer für 30 Sekunden mit einer Pause von 0,5 Sek. zwischen Anfragen.