ΖωντανάΔημόσια επαληθεύσιμο

Τι μπορεί ένας server €40

Πάνω από 4 εκατομμύρια εταιρείες και δεκάδες εκατομμύρια εγγραφές. Ένας μόνο server. Χωρίς microservices, χωρίς Kubernetes, χωρίς buzzwords.

Server8 vCPU, 16 GB RAM, €40/μήνα
Βάση δεδομένωνPostgreSQL 16 — 4M+ εταιρείες, δεκάδες εκατομμύρια εγγραφές
CacheRedis 7 — TTL ανά τύπο δεδομένων
RuntimeBun + Fastify 5 — native TypeScript

Ζωντανή δοκιμή

100 πραγματικά ερωτήματα, 20 ταυτόχρονα, κατά της βάσης δεδομένων παραγωγής

Πατήστε το κουμπί για εκτέλεση 100 πραγματικών ερωτημάτων και μέτρηση της χωρητικότητας server.

Μεθοδολογία

Τι μετράμε

Η δοκιμή χωρητικότητας εκτελεί 100 πραγματικά ερωτήματα (αναζήτηση εταιρείας, αναζήτηση προσώπων, λεπτομέρειες CUI, IBAN), 20 ταυτόχρονα, κατά της βάσης δεδομένων παραγωγής με πάνω από 4 εκατομμύρια εταιρείες, εκπροσώπους και δεκάδες εκατομμύρια διασυνδεδεμένες εγγραφές. Η εκτίμηση ταυτόχρονων χρηστών υποθέτει ότι ένας πραγματικός χρήστης κάνει κατά μέσο όρο 1 αίτημα κάθε 3 δευτερόλεπτα (φόρτωση σελίδας + χρόνος σκέψης).

Πώς μετράμε

Οι συναρτήσεις ερωτημάτων καλούνται απευθείας στον server (χωρίς HTTP overhead) και ο χρόνος μετριέται με performance.now() — ανάλυση υπό-χιλιοστού του δευτερολέπτου. Τα αποτελέσματα περιλαμβάνουν μόνο τον χρόνο επεξεργασίας server, όχι λανθάνοντα χρόνο δικτύου.

Τύπος

ταυτόχρονοι χρήστες = αιτήματα/δευτερόλεπτο × 3δευτ. (μέσος χρόνος μεταξύ ενεργειών)

Γιατί έχει σημασία

Ένας server €40/μήνα με καλά ευρετηριασμένη βάση δεδομένων και Bun ως runtime μπορεί να εξυπηρετήσει χιλιάδες ταυτόχρονους χρήστες. Χωρίς microservices, χωρίς Kubernetes, χωρίς υποδομές εκατομμυρίων ευρώ.

Τι κοστίζει αλλού

Ο ίδιος server (8 vCPU, 16 GB RAM) σε διαφορετικούς παρόχους — μηνιαίες τιμές, χωρίς εκπτώσεις

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

Οι hyperscalers (AWS, Google, Azure) προσφέρουν διαχειριζόμενες υπηρεσίες, αλλά για μια πύλη με καλά ευρετηριασμένη βάση δεδομένων, ένα απλό VPS παρέχει την ίδια απόδοση σε κλάσμα του κόστους.

Δοκιμάστε το μόνοι σας

Εγκαταστήστε k6 (ανοιχτού κώδικα, ενιαίο δυαδικό) και εκτελέστε το παρακάτω script.

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);
}

Τα αποτελέσματά σας θα περιλαμβάνουν λανθάνοντα χρόνο δικτύου — τα δικά μας μετρώνται απευθείας στον server. Το script χρησιμοποιεί 50 εικονικούς χρήστες για 30 δευτερόλεπτα, με παύση 0,5δευτ. μεταξύ αιτημάτων.